Imandu'a pohã: kuantika pytu'u'ỹva pypo'õ

Nymchat tékniko ñe'ẽmbyry

Mbojegua ñe'ẽmbojoaju pasaguá kuantum Nymchat-pe

Moñe'ẽ ML-KEM-768 mba'e porãicha'ỹva (public keys) Nostr reheve ndaha'éi peteĩ directory térã registry reheve, ha mohenda hikuái peteĩ mba'e oje'e'ỹva (secret) reheve, ndaha'éi mba'e ohecha hag̃ua opaite mba'e.

Mbohovái 1.0 Agosto 2026 Oñemohenda Nymchat 3.74+-pe

Oñembopota peteĩ post-quantum key exchange peteĩ messenger-pe ndaha'éi upéicha cryptografia mba'e. Peẽme primitives oñemohenda haguã ha umi library-o oĩ haguã. Pe mba'e ikatúva'ỹva ha'e opa oñembojoajepáva oikotevẽva peteĩ mokõiha Kave públika, ha peteĩ retýpe ndoĩ hendápe omoĩ hag̃ua upéva. Ko tembiapo ohechauka mba'éichapa Nymchat ombohasa upéva — mba'érepa pe mboyve kave oñecomi, mba'éichapa oñeñe'ẽ umi oikotevẽva, ha mba'épa pe interface ikatu he'i pe mba'e ojehasaite rehegua — ha, pe tembiapo mboyve reheve, mba'épa pe mba'e ndoñeñangareko.

1Pe problema

Nostr ñe'ẽnguéra tapeva oñeñembojoapy pe NIP-44 rehegua, oĩhápe mokõi jopý oñembojeháva. Pe jopý oñembotyrĩva pe mba'e oñeñe'ẽva — ChaCha20 peteĩ HMAC-SHA256 tag reheve, oñembopói... HKDF (RFC 5869) — ndaha'éi techaga'u guasu kuombáva kuántiku komputadora rehe; Grover's algoritmo ikatu mbyky mbykua jaikotevẽva simétriko ipe'a rehe, ha 256 bits oñeñotỹ upéva. Pe mbykua... Oñemohenda pe key reheve ha'e elliptic-curve Diffie-Hellman over secp256k1, ha Shor's algoritmo omohe'ẽ upéicha pe logaritmo disreto. Oheka peteĩ llave privada iñemboheterãme publico rehe, upéicha omohe'ẽ opaite mba'e oñembojoajuva upéva llave omohe'ẽ va'ekue ára rupi.

Ko mba'e omoheñóiva mba'e vai ndopaháivi upéicha pe máquina oĩvo. Peteĩ mba'e vai oĩva tekonundy reheve, ikatu omoĩ ko'ágã pe ñe'ẽ oñeñe'ẽva ha omohenda upévo oĩvo pe mba'e oikotevẽva. Pe mba'e oñembosaráiva ko'ágã ha oikotevẽva upéi, oĩ porãnte mboyve. Ko'ápe piko pe mba'e vai omoambue pe mba'e oñeñe'ẽva kuántika ndajapo kuaavẽva reheve, ha upévare piko ñande rembiapo ndaikatúi oĩ jave pe máquina oñemohenda jave.

1.1 Ko tembiapo oemopyrũva pe mba'e oje'e hag̃ua

Ko mitigación oikuaa porã: oipytyvõ peteĩ post-quantum key encapsulation mechanism oñondive pe mba'e ojejapóva klasiko rehe, upéicha peteĩ mba'e oñembotyvéva oñembotyvéva mokõive mba'e oñeñe'ẽ hag̃ua. Nymchat oipyre ML-KEM-768 (FIPS 203). Upéva áraite omoheñói peteĩ mba'e mboja'o mbo'e:

Pe porandu

Alice rehegua omohenda hag̃ua ára ko'ápe, peteĩ mba'e oĩva peẽme: i-npub. Emoĩ avei peteĩ post-quantum exchange ha peẽme ambue peteĩ — i-ML-KEM public key. Mba'épe oĩ ko key, ha mba'éichapa peẽ oñe'e peẽ omoĩ hag̃ua mba'e peẽme?

Pe npub ha'e oĩmbaite. Reĩmbo'éta kuatia ha'e rupi, reñe'ẽta chupe, térã rehecháta ipu'aka rupi, ha upéicha péma opaitéramo oñembosẽ (encrypt) hag̃ua ndéve. Pe ML-KEM-768 public key ha'e 1,184 bytes. Anína ikatúi reñe'ẽ chupe, ndaikatúi reĩmbo'e username rupi, ha ndoñembosako'i hi'ãite pe QR code rupi peteĩ identity ha'e 32 bytes añónte.

Guasu ha'e pe mba'e moeasẽva. Pe mba'e marangatu ha'e pe mbohovái kivi omoheñói mbohapy mba'e jejapo ohesakãva, ha pe ko tembiapo rembiapápe oĩ hína pe mba'e oipytyvõva ko'ã mba'e rehe:

2Ñemombyry rehegua tahanha

Mbohapy mba'e omoĩva pe tembiapo, ha upéva omoĩ opa mba'e ojehechávo oñehaipyrevo mba'e ojejapóvo.

  1. Mba'e oñe'ẽva ndóivo michĩve ikatúva. Nostr users oñeñandu peteĩ mba'e michĩ añetete, pe nsec. Pe mba'e michĩ ambue oñembojejapóva ha'e ambue hendáicha reity hag̃ua ne rembiapo, ha kuéra oikuaáva oñemoĩ hag̃ua peteĩ nsec, ndoikuaái oñemoĩ hag̃ua ambue mba'e. Paha 3.1 he'i ko mba'e ndaikatúi oñemoĩ tekotevẽ — peteĩ kave oñemoĩva nsec-gui ndoipurúi mba'e proteksion post-quantum-pe — upévare ko rembiapo oipurúvo peteĩ mba'e michĩ añetete ha ndaha'éi ambue: peteĩ mba'e michĩ, oñemoĩ peteĩ árape rehegua ne reko, oñemboguata pe nsec rehegua mba'éichapa ha pe hendápe avei, upéicha oikuaáva oñemoĩ peteĩ, oikuaáta oñemoĩ pe ambue. Paha 10.1 he'i añetete mba'éichapa ko mba'e ojeguaa.
  2. Ndaipóri autoridad. Ndoguereko server oñe'ekuaáva mba'éichapa kave oĩ mba'épe. Upéicha sã'ỹ server oiko tenda oñembosẽva mensáhenguéra ambue tendápe.
  3. Tekopyre heta, peteĩ tapicha ha'eha. Nostr ñemoñe'ẽ oñemoporavõ heta cliente rupi oñondivepa. Ko'ã kave opaite cliente rehe oñemondive va'erã, ha umi tape omoĩva ko'ã kave ndaikatúi oñeñomongetáramo umi vyryryva oñeñangareko va'ekue rehe.
  4. Ndaha'éi ñe'ẽmbyaty. "Mba'éichapa reipytyvõ ko'ã mba'e reñe'ẽnguéra" oñe'ẽ hag̃ua oñondiveha ha'e peteĩ mba'e ikatu oñemboja hag̃ua peteĩ tapicha oñeñembosaráiva omoĩ hag̃ua oĩva umi mba'e ndoje'ỹva. Ko tembiapo ndaikatúi oñemboja hag̃ua mba'eve.

3Jajove'ỹva yvyra'y mba'e ndoje'eiva

Decision omoĩva guasu ha'e pe ML-KEM decapsulation key oñemoĩva peteĩ mba'e rehe, ndaha'e mba'e ojehechauka va'erã. Mba'eichaitépa oĩ peteĩ identity, oĩ peteĩ root secret, oñembohasa peteĩnte:

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)

Pe root ojehechauka ipyruvape pe mba'eicha pe nsec: bech32 Pe ñepyrũmby ava oikuaáva ndive nympq, upéicha oñeñe'ẽ nympq1…, ohechaukáva nsec ndive identity screen-pe, pe reveal interaction yemina, ohekopetáva pe mba'eichaitépa ohekopetáva, ndaha'éi oñemoĩva (logged) ha ndaha'éi oñembosẽva tapiaite oñembohory mboyve (in the clear). Ndaha'éi password ha ndaha'éi login. Ha'e pe key material user-gua oñemonguéra (save) va'erã, nsec-ichaite.

Pe sal oñembohasa peteĩ mba'e rese oñemoĩ hag̃ua, upévare ndaikatúi opaite mba'e michĩva ambue ohecha avei pe mba'e ipu'ãva mokõi oñembojoaju va'ekue. Pe epoch Mbojererehy mbojegua (Seksyón 9).

3.1 Mba'érepa pe te'e ndaikatúi oñemboheraha identity key-gui

Pe mba'e ojeha'arõva ha'e pe keypair ojehe'ẽva pe mba'e ojeheja oĩva tapicha ári:

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

Omohe'áva upéva mbohapyve'ỹ rehegua, opaite oĩva añetete: ndojehai'ãi mba'e omoĩ hag̃ua, oiméramo nsec oĩma hague pe mba'e omoĩva; opaite mba'e oñe'ẽmbaitéva ojejapóva rupi, ndaikatúi ndave pe mba'e oñembojoajuva; identidad rehegua peteĩ mba'e oje'éva ojejapóta ha upéva añetete, oiméramo ndaikatúi mba'e oje'e ndaha'ái pe kave rehe; ha pe kave oĩma ára ojehecha haguante, upévare peteĩ cliente ojeja peteĩ mba'e hese mboyve oñepyrũ.

Opaite pe mba'e porã ome'ẽ hikuái ndaha'éi mba'eve, peteĩ mba'e reheve. Pe Shor's algoritmo oñeipy'apy peteĩ npub oñomandúva rupi, ohechauka pe nsec. Pe seed derivation ha'e peteĩ algoritmo oikuaáva opaite pe nsec rupi. Upévare, pe tapicha oñemboja pe parte classical rupi, ojapóta kembali pe parte post-quantum rupi oñeipy'apy haguã pe HKDF oñeñotỹ haguã opaite mba'e. Pe 'harvest-now-decrypt-later' — pe mba'e oñemboja hag̃ua pe feature reheve — pe llave ojejapóva upéicha ndaha'éi mba'eve.

Mba'e'ỹ oĩva opaite mba'e oñembojerure hag̃ua

Pe ML-KEM decapsulation key oĩva entropia-gui ndaha'éiva oñemboja'o nsec-gui ha ndaha'éiva oñembojavéva tekopyre (classical-only) jeporúvo.

Pe mba'e he'íva mokõiha pe mbo'eha mboyve oñembopoty mba'eichante. Peteĩ mba'e michĩmíva ojejapóva ndaha'éi ñondive ha upéi oñembojoaju user-pe oĩva umi device rehe peteĩ NIP-44 mensahe rupi, ha'e pe mba'e porã'ỹ upéi oñembosarái añetete: peteĩ mba'e oñemboja'o va'erãva pe mensahe ko árape ha upéi oheka pe kave jaikuaáramo, ha upéi pe yvytu oñemboja'o. Upévare pe ñembosarái pe oĩva upépe oĩicha oĩva, ha ndaha'éi "eñomera peẽme pe device oĩva ndéve".

3.2 Mbojoaju pe root jeheréape oĩva ambue dispositivo rehe

Mboherakuã 3 Sección 2-pe — peteĩ tapicha, heta mba'e — ndaikatúi oñemboja'o ko'ápe pe reku, upévare, mba'épa oñe'ẽ ha'e pe kave ndaha'éi mba'eve pe mba'e oĩva upépe. Oñemboja'óta hague pe mba'e oñeñongatu rupive, ha peteĩnte pe hendápe: pe tapicha omoĩ pe... nympq1… ipéve kódi hikuái

Pe ryakuã ohechauka hína pe nympq1… nsec-pe ñemboherakuãme, ha peteĩ ambue mba'e omoĩ chupe upépe, peteĩ panel-pe. Upéicha pacha hína pe mba'e oñembohasa hag̃ua. Peteĩ mba'e ndaikatúi oñemoĩ va'erã kódigo ndaikatuéiva, ndaikatúi oñemoĩ, ha upéva Section 4.2-pe oñembohupyry.

Mba'e oñeñe'ẽme oñemba'apóva oñemoĩ peteĩ mba'e oñembove ñe'ẽme, ndaha'ei pe mokõihaite mba'e. Pe tekore 3.1-pe he'i umi mba'e iñe'ẽ ndaikatúi oho peteĩ mba'e oñembojegua opaichagua ñe'ẽme añónte, ha opa mba'e oñemba'apóva upéva — oñemboherãva peteĩ mba'e oñembopirũva, oñemboha'ãva peteĩ mba'e oñembohegui he'ise oñemoĩ hag̃ua — upéva he'ise oñembojáva upéva. Mba'e oñemboguatava umi omoĩva amoĩ mba'e oñembopirũva, ha upéva haguére ñangareko oĩ añete.

Pe ñemombo'e oheja tenda peteĩ ñe'ẽnguéra rehe: peteĩ tembiapo ikatu ogueraha peteĩ ñe'ẽnguéra, opaite peteĩ AEAD blob peteĩ tembipuru rehe, pe oipytyvõva ikatu omoĩ ambue tembipuru rehe — peteĩ passkey PRF output, upéicha. Mba'eve ndoguerói ko'ágã, ha upéicha ndaikotevẽi pe ojejapóta peve, pe... nympq1… Kóde ha'e pe mba'e ikatúva oho hag̃ua mboyve. Seção 10.1 ohechauka mba'épa ojejapo hag̃ua.

Pe tembiapo kóaite oĩ iñemongove mbojeroha rehegua. nymchat-pq-root, ha oñembosako'i pe ojehechaukáva ambue mbojoapy oiko peicha. Oĩramo ndoitysói mba'e oñemboja'o va'ekue, oikotevẽva oiko: iñembosako'i rupive mokõiha mba'e oikuaa ko tembiapo oĩma peteĩ yvoty, ha upéva omoĩ ndaikatúi omoĩ ambue peteĩ (Sección 3.3).

Tekopyre mboyry: peteĩ rãypy ndaikatúva oipuru pe pyahu katu

The nymchat-pq-root Mbojegua oĩva nahániri ML-KEM key rupi oñemboju mbyky rupi. Upe rã rupi oĩ haguére pe mbyky jaipyre tekove, upévare pe mbyky rupi ojeheka haguére peteĩ mba'e oñembojoajuva pe mbyky rupi, ha'e peteĩ juhu hesakãva pe juhu oĩ haguére pe katuĩnte rupi: ndaikatúi mba'eve oje'u, upéicha avei pe omoĩva. Ojeheka klasika rupi — NIP-44 ndéve — térã ndaikatúi. Ko'ápe paha'e pe ojehekaicha omoĩva klasika rupi la ñembohory, ha ndaikatúi ndoĩ: pe rã ndoĩ mbyky ko árape, ha'e pe mba'e oĩvante.

Opaite techapyrã ojehechaukávo, oipuru ha oñembojoaju va'erã pe kave oñembosako'i va'erãva umi yvytu rehegua. Ko'ápe ha'e pe oñembojoaju mba'eve, ha ko'ápe ha'e ojerovera rehegua, ndaha'éi mbaraka'i rehegua.

3.3 Ñeñomombo'e ha ñembojoaju

Oñepyrũramo, ojupi peteĩ tee oĩva tapiaitéva, pe cliente ojapo ko mbojerovayre:

  1. Eheka oĩva nymchat-pq-root Opaipa.
  2. Tapyta ojeheka, ha ko tembipuru oikuaa oñembosẽ chupe. — eipyhyru ha eñemoandu ko reko kuántiku ñemondive oikotevẽva.
  3. Tesa ojeheka, ha ko tembiapo ndaikatúi omosẽ chupe. — animo reipyhyjúva root pyahu, ha animo reñomomõivo tembiapo porandu mba'eve. Eñe'ẽ umi tapicha ko tembi'u oñembojoaju hag̃ua oipurúvo... nympq1… Kódigo peteĩ teka'ẽgui oĩva áraite.
  4. Ndaipóri mba'e — jajapo rã'y, ñamopu'ã tembiapo, ñamomandu'u, ha ñamoha'ã... nympq1… kódigo pengguna-pe peteĩ mba'e upéicha oñongatu hag̃ua.

Tembipy'apy 3 ningo ha'e pe oñembyasyveva, ha upéva rupi ojehaipyry pe tembiapo ojejapóva, ndaha'éikatu ojeheja opaite tembiapo rehe. Mokõi mba'e oñembo'e peteĩ yvoty, omoheñói mokõi yvoty ndoñomoirũvi peteĩ rekove rehe, ha upéva ha'e pe oñembotyrõ ojeheja hag̃ua upéicha.

4Ikatuva ñe'ẽmevo

Pe tapia oĩva opaiteve rehegua pe kuaatáva omohendáva rehegua oñemohesakã peteĩ tenda ohesahápe. NIP-01 tavy — reko 30078, mopy'ũva nym-pq:

{
  "kind": 30078,
  "tags": [
    ["d", "nym-pq"],
    ["t", "nym-pq"],
    ["expiration", "<unix seconds>"]
  ],
  "content": {
    "v":     2,
    "alg":   "mlkem768",
    "nym":   1,
    "epoch": 0,
    "pk2":   "<base64url ML-KEM-768 encapsulation key>",
    "exp":   <unix seconds>,
    "devices": [ ... ]
  }
}

Addressable he'ise pe relay omoĩ peteĩ evento (kind, pubkey, d-tag) rehente, upévare oñembohapy avei jave, pe oĩva upépe oñemomombue. Upéicha, identity jatuvápe oĩ peteĩnte tembiapo oĩva ko'ágã, upévare "eheka Alice key" ha'e peteĩ mba'e ojeheka porãva, ndaha'éi tembiapo heta oñeñongatu va'erã.

Ñemohesakã ha'e pe moñe'ẽva. Pe tembiapo oñembohasa pe identity key reheve, upévare pe ñe'ẽ "pe ML-KEM key oĩ ko npub-pe" ha'e hína pe npub ryéicha. Oñembojegua haguã ambue encapsulation key, oñembohasáva peteĩ secp256k1 signature laimói va'erã. Peteĩ tapicha oikuaáva upe oje'ẽva, ndoikotevẽi pe KEM rehe.

Ñe'ẽmbyaty oñemopyai. Pokõi ára NIP-40 rehegua Paha, oñemombo'e mokõi'a gueteri, omoĩ pe tembiapo peteĩ mba'e oĩva peteĩ client ko'ágãme, ndaha'éi peteĩ mba'e oĩva ára papáicha. Pe yvytu ndaha'ei paha ára ha ára; ha katu pe ñe'ẽ oĩva upépe paha haguãnte.

Peteĩ puruhú oñemopytyryva oñeñe'ẽse haéne pe mba'e ndojapoíva mba'eve peteĩ tembiapo: pe irũkora oñembombo peteĩ NIP-44 oikoveva, pe mba'e opaite login-pe oñeñe'ẽva, ha pe client oñembosuundy kembali pe post-quantum exchange pe oñemomombo jave. Upévare, oñemopytu porãve peteĩ semana-gui, pe mba'e oñemombo va'erã oñemonguera ndaipóri quantum-resistant — oñemonguera peteĩ mba'e yma rupive — ha ndaipóri ambue mba'eve. Pe oñemombo ndaikatúi oñemopytỹ, mba'eve oñemoĩ va'ekue ndaikatúi oñeñe'ẽ henói, ha ndaipóri mba'eve oñembojerure oñemomombo kembali.

Upe mbykári ojehecha oñemopyapohẽ hag̃ua, ndaha'éirũ mba'e oho vai haguére. Mójapante, peteĩ kuatia oĩ porãve pe kave oñembohéra hag̃ua: peteĩ tekóva oñemboja, oñemboje, térã iñembyry oñemboje, oheja peteĩ temondaje moñe'ẽ hag̃ua peteĩ kave ndaikatúi mba'eve oñongatúva avei, ha pe ñe'ẽ oñembohasa upépe oñemimbaha ndaha'éirũ mba'e oho vai ndaikatúi mba'eve rehe. Pokõi ára oñemopyhy upépe, ha upéicha tembiapo oñembohasa hag̃ua oñemimbaha pe kuatia upéicha, ndaha'éirúi oje'ẽ katu pe tapicha ohecha hag̃ua.

Pe mbojeréva rekóva ojepyhy he'ã rekóva. Kokué ha'e pk2ha pe número ha'e peteĩ mba'e oĩva pe ñe'ẽmbyry (contract) rehe, ndaha'éi porãiicha añónte: ohechauka pe mba'e ojejapóva (payload format) pe ñe'ẽmbyry ojejapóva hag̃ua. Mba'e omohendáva ndoikuaái pe mba'e oĩva (field) rupi, oñembo'e "Nymchat client, ndaikotevẽi post-quantum key" ha omoĩ NIP-44 jaipyre, upéva ikatũ oñembo'e opaite login-pe. Upéva hína pe mba'e oñemoirũ porãvéva, ha oĩ va'erã pe mba'e oje'éva: pe mba'e ojehechakuaáva (format numbering) oñembo'e hag̃ua: pe mba'e ndoikuaaívaha (unrecognized capability claim) oñemoirũ va'erã pe mba'e oñemboyve hag̃ua (protection), ndaha'éi pe mba'e oñembohasa hag̃ua (delivery). Peteĩ ñe'ẽmbyry (key) ndaikatúi ojejapóva pe ore (peer) rupi, ha'e niko oñemoirũve jaipyre ndaikotevẽiva hag̃ua, upévare pe ñe'ẽ ojejapóva oñembotyry ndaikatúi oñembo'e mba'e oje'éva (error) mba'eichaitépa.

4.1 Mba'eve oĩ mba'e ojekuaávape, ha mbohapy mba'erepy

Peteĩ mba'e michĩva ha katu ipype'áva: pe ñomandu'a ojejapóva opa Nymchat client-gui, ndaha'éi opaite post-quantum-capable-va'erãnte, ha pe 'key field' ndoikotevẽi. Upéva omombaretéva mbohapy mba'e ojehecháva, ndaha'éi mokõinte:

OhechaMbytevorévaEmindĩ reko
Marandu te'y ndive Nymchat, kuantiko paha mbo'epy Mbojoapy
Ñomongetũ, ndaha'éi peteĩ téra mba'eve Nymchat, añeteguáichaite — post-quantum ndaha'éi, térã peteĩ tembiapo ndoje'ái iñemongu'e rehe. Klassiko NIP-17
Temandu'u ndaha'ei Kliente ndoikuaáva. Ha'ãnte Nostr térã Bitchat oipuruváva. Kuremí, ha tapyta ñemoñe'ẽ.

Mbojegua tembypu mbohapyve ha irundyve va'erã ningo peteĩ mba'e ndaha'éiva porãva. Ñomongeta ndereu'iváicha ningo peteĩ tembiapo oñembo'yva oikuaáva omohendáha Nymchat pe omohendáva, upéicha oñemboja pe mba'e oñembojoajáva protokoloha guive ojehechaka va'erãva, ndaha'éinte ndaikuaái mba'épa hína.

4.2 Tekopytekua ndaikatúva omipuka yvyra ra'y, oñe'ẽ ndaque.

Pe temimi'áva ikatu ojeheja: peteĩ tembiapo peteĩ tapicha rupi, ha pe oñembohasa va'ekue oĩ va'erã. Upéva piko omoĩ porã pe tembiapo peteĩ mba'e rupi, ha upéva avei omoĩ mba'e vai peteĩ mba'e ndaha'éi oñemoĩramo. Peteĩ mba'e oñe'ẽva peteĩ mba'e (key) omoĩva'ekue hese katu, oñembo'y va'erã pe mba'e oĩva añetete rehe ha omoĩ opa mba'e oñemombo'e va'erã peteĩ mba'e ndaikatúi opa mba'e ojehecha hag̃ua.

Upéicha, peteĩ machine oikuaáva peteĩ root oĩva ha ndaikatúiva ombojegua, ndojapói mba'eve. Ndopori ha ndoguerúi application-pe: oñe'ẽ porãtènte opa mba'e oĩva iñe'ẽ (keys) porã ha omoĩ jave pe mensahe, ha upéicha ohecha tapicha omoĩ (link) hag̃ua chupe. Mba'eve ndetéva ningo tekotevẽva peteĩ machine ndaikatúiva oñe'e upe identidad rehe.

5Juhupy ha pe ñe'ẽmbojoapy emirimíva

Client-éra oikuaa peẽnguéra keys mokõi hendáicha. Peteĩ subscription oñembojoaju umi tapicha oñeñomongetaáva — oñeñomongeta guasu ha grupo oĩva — upéicha peẽnguéra ñemohenda oúma tapicha opaite hendáicha. Pe tapicha ohecha mokõi mboyve, peteĩ query ojejapo oje'ẽ jave, 2.5 segundóicha; upéicha ndaikatúi oñembojoaju, pe ñe'ẽ oho umi mba'e ymaite (classical) rehe, upéicha oiko umi mba'e post-quantum oñembojoaju mboyve, ndaha'éi mba'e oñemondýiva.

Peteĩ mba'e ndaha'éiva oñemone'ẽ 10 min ndaha'éi opa ára. Peteĩ tapicha oñombojoaju peteĩ mba'erepy reheve, térã oñemomoi browser-extension login-gui peteĩ local key-pe, oĩva post-quantum mba'erepy rehe ñe'ẽmbyry jave, ha peteĩ "ndaha'éi" oñemone'ẽva opa ára oipytyvõ chupekuéra oiko peteĩ classical encryption rehe upéicha oñe'ẽramo.

5.1 Mba'épa ndoikói downgrade attack

Pe ñemohenda haipyre oñembojoaju peteĩ mba'e oñeñomongetúva rehe:

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

Ndaha'éi ñeñembosako'i mba'eichaitépa oñemba'apo, ndaha'éi tembiapo oñeñongatu va'ekue lista, ha ndaha'éi mba'eichaicháicha peteĩ tapicha ikatu va'ekue oñemboheja omoheñói hag̃ua peteĩ mba'e ndaha'eichaitéva. Oñeñongatu pe tembiapo. ha'e Pe ñe'ẽmbyry, ha oñemboja. Pe mba'e ojeheja'ỹva térã oñemboja'ỹva jerovia, ha'e pe ñe'ẽ oho oĩva ára mboyve — pe oĩva ára mboyve ko tembiapo mboyve — ndaha'éiva mba'e oñemboja hag̃ua mba'e ojejapóva ojeheja'ỹre.

Pe mbykári oĩnte avei ha ipu'akaveve: peteĩ cliente omoĩ hybrid jepe oñongatu peteĩ pypore, ha pypore oñongatu hague ha'e tembiapo pe ojehecha va'ekue oñembuka haguã. Ndaha'éi mba'e oñembosẽva post-quantum pe ojehecha va'ekue ndaikatúi oñehecha haguã.

6Mba'apo joaju

Nymchat ndoñemboyve NIP-44-pe. Oñembopytai chupe. Peteĩ NIP-44 ciphertext ndoñemboyve'ỹva ha'e pe oĩva oñondivepa, ha ML-KEM keys ha'e pe AEAD oĩva oñembopytai hague:

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)

Mokõive mba'e tuicháva oñembohovái hag̃ua tembiapo oñeñe'ẽ hag̃ua: pe ñe'ẽ mímĩ ohechauka añónte peteĩ NIP-44 ciphertext, ha ikatu hag̃ua oñeavẽ hag̃ua ECDH ymave rehe. Peteĩ tapicha quantum oñembo'e va'erã secp256k1-re, ohecha pe mba'e ikatu'evéva oñeñe'ẽ hag̃ua ha upéi oñembosako'i ML-KEM rehe; ML-KEM oñembo'e va'erã, pe ñe'ẽ mímĩ oñemboja ha NIP-44 oĩnte. Mba'e opaite oñembohasa ha oĩ itsaka:

Encapsulation oiko pyahuve mensaje opaichagua. ML-KEM kapi'i oha'arõva'e oĩ heta árape, upéicha ndaha'éi, mensaje opaichagua ogueraha ciphertext oñembojoapy'ỹva ha upéicha peteĩ oñembojoapy'ỹva... kem_ss. Upéva omoĩ iporãva jaikehua pe nonce, ndaha'éi randomisa hag̃ua: ChaCha20-Poly1305 Oñemoirũ peteĩ (key, nonce) jave rehe, ha ko'ápe pe key ñandejey pyahu opaite message hag̃ua, upéicha ndaikatúi peteĩ jave oñemondeta avei.

6.1 Mba'érepa umi ryguasu oĩ oñembosarái

Mba'e ambuegua ha'e oñembojoaju mokõive moõngue peteĩ ñe'ẽmbotapy mbojegua reheve ha upéicha omoipúvo NIP-44pe:

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

Upe ñembojoaju iporã cryptografiaicha. Oĩ peteĩ problema ñembojotyo rehegua: ha'e oĩva'erã ecdh_x, ECDH mboherahápe oĩva x-coordinate hesa, paha mba'erepy hag̃ua — ha peteĩ browser extension (NIP-07 rehegua) térã ñemoirũva oĩva opa hendápe (NIP-46 rehegua) ndogueru upéva mba'e. Omoĩ NIP-44 upe omohendáva rehe, ha omoĩ peteĩ ciphertext, ha upéva ha'e pe mba'e oñehendáva hag̃ua pe kave oĩ hag̃ua peteĩ tendápe ndaikatúi pe application oho hag̃ua.

Upéicha, pe mba'e mbo'yry mbojoaju omoheñói oñembojoaju opaite oñemonguera hague pe identity key peteĩ signer rehe, upéicha avei umi oñangarekovéva, ha ndaikatúi mba'eve omoĩ pe key derivation rehe. Pe layering omoheñói oñemoĩva: NIP-44 oĩ hína ha oñemohechakuaa upégui pe identity key, signer ha'e avei, ha pe KEM mitã oñemohenda pe recovery code client-pe oĩva. Signer logins ha'e hína umi post-quantum participants mokõi hendápe.

Pe mba'e ojeipy'apyva ha'e pe bandwidth, ha ndaha'ei mba'e michĩva. Pe ML-KEM ciphertext oĩ 1.088 bytes ha oĩ opaite ñe'ẽme, base64url-encoded ha oĩ 1.451 characters; pe AEAD opaite omoañete peteĩ 16-byte Poly1305 tag ha omohesakã pe NIP-44 payload oñongatuva upéicha peteĩ hendáicha. Peteĩ ñe'ẽ 50-character oho 176 bytes-gui 1.712-pe, ha peteĩ 2.000-character oho 2.820-gui 5.238-pe. Pe ipu'aka oĩ hína 1.5 KB opaite ñe'ẽme, ndaha'ei mba'éichapa pe ñe'ẽ ipu'aka, ha upéva ha'e pe mba'e ojeipy'apyva opaite ára omoañete haguã pe encapsulation ndaha'e'ỹ pe shared secret oipytyvõva.

6.2 Tekopyre oha'éva ikundaiva'ekue

The pq2. Pe prefixe omoĩ haguã pe deployment tapiaite: he'ise mba'eichaitépa ha'e, upévare peteĩ cliente omohenda pe decryption path ohecha hag̃ua pe payload, ndaha'éi pe tag oje'e hag̃ua térã pe oñeñandu hag̃ua mba'épa pe peer oipytyvõva. Peteĩ reader ndoikuaái pe prefixe, ndaikatúi omoĩ pe payload, ndaha'éi pe oñeñe'ẽ vaíva; ha pe mba'e oñemoĩ mboyve pe post-quantum oñembopurú, oiko peteĩ NIP-44 oñeñe'ẽ porã hag̃ua, ndaha'éi oñembojoaju (migration) hag̃ua.

Ñemboja ndejereíva

ML-KEM decapsulation oñembohasa'oicha ndaha'éi oñembyasy: ojehecha peteĩ ciphertext ndoha'e porã va'erãme, pe Fujisaki-Okamoto transform omoheñoi peteĩ secret oñemboja'o va'erãnte, ndaha'éi error. Upévare, peteĩ key ndaikatúi ojekuaa KEM layer-pe — ojekuaa haguã pe HMAC failure NIP-44-pe, ha upéva ningo pe mba'e ojehecha avei peteĩ classical key oñemboja'o va'erãme. Pe oipurúva (callers) oñemboja'o avei upéva, upévare ndaikatúi ohecha mba'érepa oiko. Upéva avei oipytyvõ Section 9.1-pe oĩva umi candidate list: peteĩ cliente omoheñoi umi key opaite, ha NIP-44 omoheñoi mba'épa oĩ porã.

6.3 Mokõi mba'e jere pote

A NIP-17 rehegua ñe'ẽ michĩ ndaha'éiva opaite ndive ha'e peteĩ NIP-59 rehegua paha katu: peteĩ ñe'ẽ ndopiavãva, ñemu'ãva imbo'ehaópa tembiapokue (kind 13) rupive, ha upéi oñemboje'a peteĩ tembiapokue ojejapóva opaite ñe'ẽme (kind 1059)-pe. Login oñeñongatúva tembiapo imbo'ehaópa rupive porã, Nymchat oñembojoaju umi mokõi ñe'ẽme, opa ikatúvo oñemboje'a opaite mba'e.

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
Pe ñembohory mbo'ehaa mokõive oiko hikuái oñondive, peteĩnte ML-KEM encapsulation rupive. Pe mbo'ehaa pohakuãve oñembo'y peteĩ mba'e mba'e'ỹ rehe, upéicha pe ñembohory ndaikatúi ohechauka pe omoĩva.

Mbo'ehaóva oñembo'e hag̃ua oguerekóva paha oĩva añetete. Pe takuapoy ojejapóva mbo'ehaóva rupive ha'éva NIP-44 jaikuaáva — pe software ndojuhuichéi pe taha'e ojejapóva chupe — upévare ndaikatúi oñondive ojejapo. Ko'ã mba'e ndereikuaái mba'eichaitépa ñemboty: pe takuapoy oĩ haguã pe paha rupive, ha pe paha ningo pe oñemongu'e hag̃ua oñerekóva. Pe ñemboty oñerekóva pe ñe'ẽ oñemongu'e va'ekue, oñembo'e haguã ML-KEM pe takuapoy ohecha hag̃ua ko'ã mba'e.

7Mba'yru ñe'ẽmbyry ha tape moõmi

Peteĩ mba'e oje'e grupope ndaha'éi peteĩ kuatia tapiaite. Peteĩ mba'e oñe'ẽva (plaintext) omoĩmbaitéva opaite tendavépe, opa peteĩ kuatia oñembojoaju hag̃ua upe tendavépe i'e ML-KEM tembiapo rupive. Umi tendavépe omoĩ hag̃ua tembiapo oñembojoajuva (hybrid wrap); umi ndoje'éiva oñembojoaju peteĩ mba'e oñembosarái (classical wrap).

Ko'ãva omoheñói peteĩ mba'e oñembojerovia ojejapóva ndaha'éivéi iporãva oje'éva mba'e oje'éva. Porãme, tapicha 10 rente 8 ojere peteĩ mba'e oñondiveva, pe ñe'ẽ ha'e: nahániri Poteete oñemboykypy. Peteĩ oñemboja oikotevẽ peteĩ mba'e oikuaáva reko oĩva poteete ári peteĩvéicha, upéicha pe ñe'ẽ oñemboykypy haguã... ñavo reko ha'e.

Nymchat upévare ohecha pe cobertura opaite tembiapo rehegua oñembopypytũvo jave — pe hesakuã oĩnte oñembohasa haguã pe tembiapo jave — ha pe badge he'i "quantum-resistentéva 10 rehegua 8 ndive" ndaha'éi he'íva pe tembiapo oñeñongatúva. Ánde ndaha'éiva mba'e he'ise, ha upéva ha'e pe ojejapóva opaite ára... Ahupyty ñemongue oñondiveve hag̃ua (ñemongueva pépante omohenda pe ñemongue oñemomba'e hag̃ua), pe interface omombe'u hína umi ñemomba'e ndaha'éi opaite, ha'e ndaha'éi opaite. Oñe'ẽ hína opaite ñemomba'e rehe, ha'e ndaha'éi hína pe ñemongue oĩva oikove hag̃ua hetave mba'e rehegua.

7.1 Mba'épa tembo he'i

Pe tapi'i oje'e pe añetegua rehegua ñe'ẽru, ndaha'éi pe software omoĩva'ekue rehegua:

Pe mbojegua'u oñeñombytávo pe tembiapo oñembo'y mboyvévo, ndaha'éi oñe'ẽnte pe ambue tapicha omohendáva oñondive. Pe kuatiañe'ẽ oñembo'yva oĩma, ndaikatúi oñeñangarekove ha'e oĩva upéicha, ha peteĩ tembiapo oñemboje'e mbojeréi oĩva temombe'u pyahu reheve, oñe'ẽ hína mba'e mba'e'ỹ pe tembiapo oñemohendáva ári.

Pe ñemohu'ã rupi upéva oñembojoaju ko'ápe ndaha'ei hag̃ui okañy ko'ápe: pe ñemondipy rupi'ã oĩ porã porã oĩramo opaite tapicha rembiapo rupi'ã, ha pe ñemondipy oñemboheguáicha ndaha'óiha opaite, oje'e hague ha'e hína mba'e michĩmi.

8Kopia oñemohenda nderehe

Oĩ mba'e hetave oñemongu'e client oñemongu'e tapicha rembiapo rehe: tembiapo oñemboponõva, conversación lista, grupo keys, ha mensaje archive. Ko'ã mba'e ohechauka hetave tapicha rehe ha avei mba'e hetave jaikuaa umi mensaje tekotevẽva rehe, upévare, ojeheja hikuáiicha oĩramo, hikuái hína umi mba'e oñembosarái va'ekue umi mensaje ojehembypytýva rehe. Ha'ekuéra oipurúvo avei pe mba'e oñembojoapyva, oñemongu'e user-pe oĩva i'ary'ỹ guare rehe — oĩramo peteĩ mba'e oje'eva Sección 3.2-pe, pe nymchat-pq-root Tendapy katu, ndaikatúi oñemombo'e llave reheve, ha'e katu omoheñói va'erãnteva.

Ko mba'e reity rupi oñembopy'aitúva pe rembiapo. Peteĩ mba'e oñembosako'i hag̃ua térã peteĩ mba'e oñeñongatu hag̃ua oĩ peteĩ tendápe ary piruvĩ, ha upéva ningo ko'ã mba'e oñongatúva peteĩ mbohogay oñongatúva ko'ágã ha oñembosẽva upéi — hetave ko'ã mba'e reity rehegua ha ndaha'éi peteĩ ñe'ẽ, upéva ningo oñepyrũ ha oñemboty upéi upe oipurúva membyre pype.

Peteve moñe'ẽnguéra omohenda ko tembiapo'ápe ndaha'éi pe kapi'i reirõnte. Pete tembiapo oñembojerovia hag̃ua pe omoĩva'ekue ikatu hag̃ua oñembohea... ñavo tekerãme account-pe, upéicha tekerãme opa omohenda mba'épa ojejapóta i-roster-pe omohendáva, ha account-pe omoĩta añónte mba'e opaite oñeñotỹva. Omoĩvo ambue mba'e, peteĩ tekerãme ndaikatúi ihesakã porãre — upéicha oñembojegua hína Sección 3.2 ambue hendáicha.

Peteĩ mba'e omoĩva oje'e va'erãva

Tembiapo petỹ tembipuru omoĩva'ekue tapiaitépe ha ndaha'éi mba'e yvoty, ndaikatúi ombyaty mba'e mba'épa oĩva yvoty rehegua, upéicha avei upéva techapyrã. Upéva ha'e petỹ mba'e omoĩva'ekue upéicha, ndaha'éi mba'e oñemoĩramo porã'ỹva, ha upéva rupi Sección 3.3 oguerúva petỹ tembikuaaty oñembojoaju hag̃ua ndaha'éikhei omoĩ hag̃ua petỹ yvoty pyahu: yvoty ambue ndaikatúi oñeñe'ẽ hag̃ua upe mba'e oñembotyva'ekue, ha'e ndaikatúi omoĩ hague upe tapiaitépe oĩva mba'e oñembotyhápe mokõi. Pe tapiaitépe oñembojoaju javeve, pe tembipuru oikove hi'ãnte — oñeñe'ẽ mba'e oĩva iñembojoajúva ha omoĩ upéicha.

Peteĩ tembi'u omohendáva peteĩ browser extension térã peteĩ remote signer (NIP-46) ndaha'éi oĩ ndive nsec omohendáva hag̃ua, ha katu oĩ chupe pe recovery code, ha pe mba'e ojejapóva Section 6.1-pe, upéva púnte hikuái pe mba'e oikotevẽva pe post-quantum mba'e: pe signer omohenda pe NIP-44 capaicha ojejapóva opaite ára, ha pe client omohenda pe capaicha oĩva upépe. Upéicha pe login ha'e peteĩ mba'e ojejapóva opaite hendápe.

9Mbyatýi

The epoch Pe kuatiaha derivaciónpe ha'e pe omoheñóiva ñemohenda ndaikotevẽi mba'e pyahu. Omoheñói hag̃ua peteĩ kuatiaha pyahu pe yvyra imbareteitehápe ha peteĩ tembiapo oñeñomombyryva; umi oñondiveva ohecha pe kuatiaha pyahua pe mba'e oñembohytáva rehegua. Upévare, ñemohenda ndaikotevẽi umi tapicha omoĩ hag̃ua mba'eve mokõimbajey: pe yvyra ojehechauka peteĩ mba'e hesakuã rehegua ha pe ñemondýi omoheñói pe ñemohenda.

9.1 Época yma oñemonguẽ, ha mba'eve ndojejapói re-kryptea.

Ndaha'éi mba'eve oñembojeva peteĩ chave oñembojegua reheve. Peteĩ client omoĩ dekripsion haipyre ko'ágã epoch guive epoch - 3-pe g̃uarã, upéicha peteĩ mba'e'e oñemboje kopy oñembojegua mboyve, oikove hína pe chave oĩva katu oñembosẽrãmvo.

Upe tiempo ha'e pe omoĩva'ekue ñembosarái (rotation) iporãveva'ekue: upéicharégui, ñembosarái opaite mba'e oñembohandýva ndaikatúi oĩ hag̃ua. Mba'e oñemoĩmavo katu oĩta oñehecha hag̃ua oĩvo pe tapicha (identity), ndahápe mba'e oñe'ẽva ndaikatúi oñembuka tuichaitéva pe tapichápe, ha'eve mba'e oñeñangareko ndaikatúi oñembojoayvéva (Sección 10.5).

10Mba'épa ko ndai ñangareko

Tapyta oñe'ẽmante mba'épa peteĩ rembiapo omoĩva ndaha'éi peteĩ sistema omohendáva, ha oñe'ẽ guasuite peteĩ seguridad rehegua peteĩ mba'e oñemohendápe ha'e iporã'ỹve ndoiporãíva. Ko'ã mba'e ndaha'éi ko rembiapo ojerégua.

10.1 Pe ryru ha'e mokõiha mba'e mba'e'ỹ, ha oñembojave ndaikatúi oñemone'ẽ mboyve.

Ko'ápe oĩ upe rembohyry rembiapoite. Pe tembiapo oĩva 2. pehapýpe, oikuaáva upe tapicha oñongatúva peteĩ mba'e añetehápe, ndaikatúi: pe nsec tekotevẽi omohenda kembali upe post-quantum llave, upévare mba'eichaitépa oiko, ndaikatúi mba'e omohechauka va'erã upe mba'e oparapáva pe mba'e guýpe. Upéicha, ndaikatúi mba'e omoĩ upe root ha ndaikatúi avei upe 3.2. pehapýpe oñembohoryva oje'ápa, upéicharõ pe mba'e oñembojoaju va'ekue upe root-guáva llave rehe, ndaikatúi oñemohenda kembali. Ndaipóri escrow ha ndaikatúi avei avei opaite tembiapoichagua (authority) omoĩva peteĩ.

Manual transfer ha'e hína pe tape añetete, ko'ãva ipya'eve opaite pe oñepyrũmante ojehecháva. Peteĩ oipuruva ndojapotaiva'ekue... nympq1… Kóga anywhere-pe oĩ peteĩre añetete, peteĩ mba'ere rehe, ha oñembyaty upéva mba'e, oñembotyrõ opaite mensahe post-quantum, settings blob ha archive row oñemopy'ái chupe. Pe nsec nderepytyvõ; upéva ha'e pe mba'e oñemoĩva pe rembiapo guasu rehe.

Tape oñembojeroviáva oñemoañonógui, upéva oñemboporoite avei pe tape oñeñe'ẽva. Tapicha oñembojegua oñembojegua pe tape mbyasyitevéva; upévare, peteĩ mba'e ojejapóva oĩ hína pe tape mimbíva oñemboyve hag̃ua — porãnte, peteĩ ñe'ẽ oñemoñe'ẽva, upéva omoĩ opa mba'e upéicha oĩ pe ñe'ẽ; ha upéva tape oñembojeroviáva ha'e pe mba'e oñembojegua oñemboje'ekue oñeñe'ẽ hag̃ua iñãmbyre oñembo'e hag̃ua.

10.2 Mba'eichaitépa ojehecha hína, ndaha'éi pe mba'e ndoikuaái.

Opaite mba'e ñemomarca Nostr-pe Schnorr secp256k1-icha, ha upéva ndaikatúi oñemomí ko'ápe. Peteĩ mba'e oñemondéva peteĩ kuanti kompiutador rehegua ikatu omoĩ mba'e ñemomarca ha oñeñe'ẽ peteĩ user rehe oñondivepa. Pe mba'e ikatu oñemboja pe "hybrid key exchange"-pe ha'e pe "japo ko'ág̃a, oñeñe'ẽ mokõiha": peteĩ attacker ko'ág̃a oñembohory pe traffic, ndaikatúi upéva oñeñe'ẽ upéi. Ndaikatúi omoĩ peteĩ message ndaikatúi omoĩ peteĩ adversary oĩva upéva machine rehe. Ko mba'e oñemomí oñemboypy aplikasiónpe — pe padlock ohechaukáva authentication, pe shield ohechaukáva confidentiality, ha umi oĩ hikuái oñemandu'a hague, ha'e rupi peteĩ mba'e oĩha pe oĩhague oĩramo pe oĩvápe.

Upéicha avei omoĩ limitasyón opa mba'e pe oñe'ẽva Section 4-pe oje'e va'erã. Pe ñemohenda npub ha ML-KEM key mboyve ha'e peteĩ secp256k1 signature, upévare peteĩ oñemboja ikatu ojejapóva upéicha, ikatu oñemboty hague peteĩ key hese. Pe mba'e oñemongove peteĩ oñemboja oúvava hasnave ndaha'ei mba'e ñe'ẽgua peteĩ tapicha ndive.

10.3 Metadato

Mba'e porã ñemu'u oñemboje'a oiposéva, oipojétava veve peteĩ p tag, pe mba'eichaitépa ha pe ára ha ára pe oñe'ẽva orendápe rehe. Ndopahápe mba'e ojejapóva oĩha, hi'ã, térã mba'érepa peteĩ relay omoĩpa chupe. Ko tembiapo ramo rehegua ndopóri mba'eve pe mba'e oñemovẽva guarani analiza rehegua.

10.4 Pe mbo'e ndaha'e oñeñongatuvehápe.

Nymchat-pe Bluetooth mesh transporte ha'e peteĩ ambue protocolo iñonotárõ (handshake) reheve, ha ndaha'éi ko tembiapo oñeñotỹva. Mesh reheve oúva mba'eñe'ẽ ha'e umi mba'eñe'ẽ yma.

10.5 Mensahe oñemohendéma

Ñe'ẽ oñembohovái va'ekue oĩhápe peteĩ oĩhápe mokõive peteĩ oĩvo mba'e ymaite (classical), upéicha oĩta hendáicha opa ára. Oĩma upéicha ha anihaséi oñembojoavy ambue hendáicha. Ñangareko oñepyrũ mba'e oje'e va'ekue reheve oimehápe mokõive oĩvo mba'e oñembohetiavẽva (post-quantum) keys, aníke oñepyrũ oñeñomombarete va'ekue reheve.

11Oĩva ojejeréi

ÑembojoajuMba'épa ndaha'éi?
Ejapóvo pe paha post-kuantika pe paha identidade-gui Jepytapa. Pe derivation ha'e peteĩ algoritmo públiko nsec-pe, ha peteĩ quantum adversary ohecha kembali nsec pe npub oñembojeréi va'ekue guéva, upévare ñemboja'o pe klasiko tapỹ omoĩ upéicha pe post-quantum tapỹ. Omoĩ porã opaite distribution problem ko paper rehegua ha ndojo'ai mba'éichante. Sehã 3.1.
Emoĩ pe root user guarani ambue techapy-pe NIP-44 reheve. Oñembojegua'u avei opaichagua mba'e, ha katu oñemoĩ opaichagua mba'ereíve. Peteĩ paha oñemongu'e tekotevẽnte ko'ãga reínte, oikotevẽ avei opaite tapicha oñemongu'e ko'ã mba'e ha oñemombarete i pytekue, ha upéva pe tapicha paha oñembojegua'u haguére oñembohetia haguére.
ML-KEM mbojerure mokõi ojepapáva opaichagua mba'e opaite ryépe. Omoĩre. Mba'e ojejapóva oĩta opaichagua mba'e oñeñe'ẽ hag̃ua, ha peteĩ ojekuaa hag̃ua mba'eicha oĩva peteĩ tapicha rehegua ndaikatúi oñomonguera opaite ko'ã mba'e rehe. Oñondive oñemoĩva oñeñe'ẽta pe mba'e oñemoĩ va'ekue pahápe rehe, ha opaite ambue mba'e ojejapóva ndaikatúi omoĩ pe mba'e oñemboja va'ekue. Peteĩ mbyaty peteĩ tapicha rehegua, oñemovietaha Seção 3.2-pe oĩva hendáicha, upéicha oñemombarete ha ndaikatúi oiko.
Ñembo'y pe root PIN rehegua. Oñembojegua'a. PIN opaichagua pymaty ha'e 13 bits oĩva pe offline attacker oñotỹva pe row wrapped-háva rehe. Omoĩvo upéva mokõi 256-bit yvyra ndive, ojehechauka hína pe mba'e ndaha'éiva pe tapỹva wrap-pe oĩva.
Mombarete pe npub moõve kave oñongatu hag̃ua. 1,184 bytes ndaha'éichai tembiapo oñomongetaha'éva, ha upéva oñembosarái opa Nostr client oñeñomongeta hag̃ua dirección oñembohoryháva 32 bytes-pe.
Peteĩ importante servisio tapyra Oñemomondisa pe mburuvicha pe rete oñemoirũ hag̃ua. Máva oñe'ẽ va'erã pe oheka va'erãme, ha'e ohesa'úva mba'éichapa oñe'ẽ va'erã pe tembiapo.
Eñongatu teke'ỹ opaite ñe'ẽme. Ndaikatúi mba'eve: pe omohu'uova'a oikotevẽva pe ohesẽvape Tepyre ñemongeta oñepyrũva ñepyrũmbýre, ha upéicha hína, ndaikatúi opaite ñemongeta oñongatu hag̃ua.
Ñe'ẽmbojoaju mba'e ojehecha oñondivepa. Omoheñói peteĩ mba'e oñemombaretevéva. Peteĩ tapicha oñemomboreva oñembojerovẽvo peteĩ mba'e ojejapóva, oity peteĩ tape oñembosarái.
Post-quantum añetéma, ndaha'ei klasiko. Ñandú te kapi'i oñemongu'e va'ekue secp256k1 rehe, oñembojavévo tekopyre pypuku'ỹva gueteri rehe. Mbojavéi oñembosarái añónte ikatúvo mokõivéva Oñemondýi.

12Mohendahápe joaju

Nymchat ogueru mokõi ñembopurú ikatupyry'ỹva ko mba'e ojejapóva rehe — peteĩ JavaScript-pe web application-pe g̃uarã, ha peteĩ Dart-pe mobile applications-pe g̃uarã, oĩramo peteĩ ML-KEM-768 port ojejapóva opaite rehe. Mokõi ñembopurú peteĩ mba'e rehegua upéva ha'e mba'e ndereikóiva, upévare oñembosarái hikuái upéicha ndaha'éi oñembojoaju hag̃ua.

Dart ML-KEM ñembokatupyry ojehechauka pe mba'e pytingáva rehe NIST ACVP ML-KEM-768 peguáve ñemohenda oikuaáva (ML-KEM-*-FIPS20325 mba'e key-generation, 25 encapsulation ha 10 decapsulation, oñehendu hag̃ua hai pe oñondivepa. Ha'e peichateĩ umi vectors NIST oñembosako'i va'erã oñeha'ã hag̃ua peteĩ implementation, upévare oñeha'ãramo ojehecha va'erã pe port oĩ porãha, ndaha'éi opaichante ojehecha hag̃ua umi mokõi client oñombojoapy ha'eñoite. Upéicha avei, peteĩ shared fixture umi test vectors-gui — seed derivation, encapsulation, umi payload format ha opaite gift wraps — ojejapóva JavaScript reference-gui ha umi test suites oñeha'ã hag̃ua. Pe root secret omoĩve pe fixture, ndaha'éi omoĩmbajepéva: root rupive seed, root rupive keypair, pe root-pe oĩva public fingerprint, ha pe key, nonce ha umi mba'e oñondivepa pe outer layer-pe, ha'e peichateĩ umi vectors oĩva opaichante, upévare umi mokõi client ndaikatúi oñeñe'ẽ oĩva peteĩ... nympq1… Kóde ningo oje'e umi bytes omoĩva ñe'ẽ rehe. Oiméramo mbohendaicha oñeñembojoavégui, pe ñemohenda ndaikatúi oñemohenda, ndaha'éi pe ñe'ẽ ndaikatúiva oñemboje'a ambue client-pe.

Pe ñemongue po ha'e oñeñomombe'u va'erã ko'ã reheve. Upéva ha'e pe ohechaukáva peteĩ mba'e "ko'ápe ha'e pe mbyky amongu'e" ha "ko'ápe ha'e ambue peteĩ" reheve, ha peteĩ oipytyvõva ndaikatúva omoheñói ambue oipytyvõvape pe ñemongue po, upéva oñeñe'ẽta peteĩ mba'e porãva oĩva ndarenguéra — ha upéi, oñeñe'ẽramo Sección 3.3 reheve, omoheñói ambue mbyky ha omoĩ opaichagua (identity) opaichagua. Upéva ha'e peteĩ mba'e omoĩva upéicha ára pypa.

Nymchat ha'e Kuaapy mbyatýva AGPL-3.0 rupi. Ko kriptográfiko sy ojehechaukáva ko'ápe ha'e js/nym-crypto.js ha js/modules/pq.js web client-pe, ha lib/core/crypto/ ndive lib/features/identity/pq_registry.dart moail kliente-pe

Ñemomandu'a moitĩva ha ndetéchniko g̃uarã, ehecha pe Imandu'u paha kuantun resitente mbojegua rehegua.