މައުލޫމާތުގެ މުވައްހަ: ކުއަންޓަމްގެ އިންޒާރުން ރައްކާތެރިވާ އެންކްރިޕްޝަން

Nymchat ޓެކްނިކަލް ވައިޓްޕޭޕަރ

Nymchat ގައިވާ ޕޯސްޓް-ކުއަންޓަމް ކީ އެގްރީމަންޓް

ޑައިރެކްޓަރީއެއް ނުވަތަ ރެޖިސްޓްރީއެއް ނެތި، ML-KEM-768 ޕަބްލިކް ކީސްތައް Nostr މެދުވެރިކޮށް ބެހުރުމާއި، އެއްވެސް ފާބްލިކް މައުލޫމާތެއް ފާޅުނުކުރާ ސިކްރެޓަކުން އެކަން ފެށުން.

ވަރޝަން 1.0 އަގަސްޓު 2026 Nymchat 3.74+ އަށްt އަމަލުކުރާނީ

މެސެންޖަރަކަށް ޕޯސްޓް-ކުއަންޓަމް ކީ އެކްސްޗޭންޖެއް އިތުރުކުރުމަކީ މައިގަނޑުކޮށް ކްރިޕްޓޮގްރެފީގެ މައްސަލައެއް ނޫނެވެ. އެކަމުގެ އަސާސީ އެއްޗެތި މިންގަނޑު ކަނޑައަޅާފައިވަނީއާއި، އެކަމަށް ބޭނުންކުރާ ލައިބްރެރީތަކެއް މިތަކޭވެސް އެވެ. އެންމެ އުނދަގޫ ބައިަކީ ކޮންމެ ބައިވެރިއަކަށް މިހާރު ބޭނުންވާނީ... ދެވަނަ (ސިކުންތު) ޕަބްލިކް ކީ، އަދި ސެންޓްރަލައިޒްކޮށް ނުވާ ލެޓްވޯކެއްގައި އެކަން ބެހެއްޓުމަށް ފާހަގަކޮށްލެވޭނެ ތަނެއް ނެތް. މި ލިޔުމުން ބަޔާންކުރެނީ Nymchat މިކަމަށް ޖަވާބުދޭ ގޮތަކީ ކޮބައިކަން — ދެވަނަ ކީ ކޮބައިން އަންނަނީ ކޮބައިކަން، އެކަން ބޭނުންވާ މީހުންނަށް އެނބުރި ރောက်ުވަނީ ކޮންގޮތަކުންތޯ، އަދި ނަތީޖާގެ މައްޗަށް އިންޓަފޭސްއަކަށް ދެވިދާ ކޮން ކަމެއްތޯ — އަދި އެންމެ ފަހު ސެކްޝަނުގައި، އެ ނަތީޖާން ހިމާޔަތު ނުކޮށްދޭ ކަންތައްތައް ކޮބައިކަން.

1މައްސަލަ

Nostr އަމިއްލަ މެސެޖުތައް އެންކްރިޕްޓްކުރެވިފައިވަނީ އެންއައިޕީ-44,އޭގައި ވަކިކުރެވޭނެ ދެބައި އޮވެއެވެ. ޕްލެއިންޓެކްސް ކުދުމަޑުކުރާ ބައިަކީ — HMAC-SHA256 ޓެގެއްގެ އެކީގައިވާ ChaCha20، ____ އިން ކީކުރެވޭ HKDF (RFC 5869) — ކުއަންޓަމް ކޮމްޕިއൂട്ടަރަކުން މާ ބޮޑު საფދާލެއް ނުލިބޭ؛ ގްރޯވަރުގެ އެލްގޮރިތަމަކީ ސިމެޓްރިކަލް ކީއަކާ ދެކޮޅަށް އަންދާނީ ރޫޓް (square-root) ފަދަ މައްސަލައެއް ކަމަވާއިރު، 256 ބިޓްތަކުން އެކަން ގަބުލުކުރަން ގާބިލުވެއެވެ. އެއިން އަರ್ಧ ބައި... އެއްބާރުލައިގަނެއެވެ ކީއުމަތީގައި އެއީ elliptic-curve Diffie-Hellman މައްޗަށް secp256k1, އަދި Shor އަލްގޮރިތަމް އޭގައިވާ ޑިސްކްރީޓް ލޮގަރިތަމް ވަގުތުން ހައްލުކުރެއެވެ. އޭގެ ޕަބްލިކް ކޮންޓަރޕާޓް އިން އޭގައިވާ ޕްރައިވެޓް ކީއެއް ނެރިކާނުކުރުމުން، އެ ކީއުން ކުރިން އުފެއްދި ހުރިހާ ޝެއަރޑް ސިކްރެޓްތަކެއްވެސް ފާޝަންކޮށްލައެވެ.

މިކަމުން އުފެންނަ საფრთরিটি އެފަދަ މެޝިނެއް އޮންނަންދެން ފަސްކުރެވިދާނެ ކަމެއް ނޫން. ސްޓޯރޭޖެއް ހުރި ފަރާތަކަށް މިއަދު ސައިފަރޓެކްސްޓް ރެކޯޑްކޮށް، އެކަން ކުރެވޭނެ ގާބިލުކަމެއް އައުމުން އެއީ ދިފާޢުކޮށް ފަހުން ކިޔައިގަނެވިދާނެއެވެ. މިހާރު ފޮނުވާ އެއްވެސް އެއްޗެއް، ފަހުން މުހިންމުވާނަމަ، މިހާރުވެސް ރައްކާތެރި ނޫން. މިއީ ޕޯސްޓް-ކުއަންޓަމް ކީ އެކްސްޗެންޖެއް އިން ނައްތަލުކޮށްދޭ ސިދާ އެޓާކްއެކެވެ. އަދި މިއީ އެ މެޝިނެއް ބިނާވަންދެން މަސައްކަތްތައް އޭރުދެން ފަސްކުރެވިދާނެ ސަބަބެއް ނޫން.

1.1 މި ލިޔުންތެރިން ޖަވާބުދޭ ސުވާލު

މި ދިމާވެދުން ކޮންޓްރޯލް ކުރާނެ ގޮތް ވަރަށް ފުރިހަމައަށް އެނގިފައިވެއެވެ: ކްލާސިކަލް އެކްސްޗޭންޖާއާއެކު ޕޯސްޓް-ކްވާންޓަމް ކީ އެންކެޕްސިއުލޭޝަން މެކެނިޒަމެއް ހިނގާލުމެވެ. އެހެންކަމުން، އެއްވެސް އެއްޗެއް ކިޔާލަން ބޭނުންވާނަމަ އެޓޭކަރަކީ އެ ދެތީގައިވާ ކަންކަންވެސް ބްރޭކް ކުރަންވާނެއެވެ. Nymchat ބޭނުންކުރަނީ ML-KEM-768 (ފިޕްސް 203). އެކަން ވަގުތުން ބެހުމުގެ މައްސަލައެއް އުފައްދައިދޭނެއެވެ:

ސުވާލު

މިއަދު އަލިސަށް މެސެޖު ފޮނުވުމަށް ކަމެއް ބޭނުންވެއޭ: އެއީ އޭނާގެ npub އެވެ. މީގެ އިތުރުން ޕޯސްޓް-ކުއަންޓަމް އެކްސްޗޭންޖެއް ހިމަނަން ބޭނުންނަމަ، ދެވަނަ އެއްޗެއް ބޭނުންވެއޭ — އެއީ އޭނާގެ ML-KEM ޕަބްލިކް ކީއެވެ. އެ ކީއަކީ ކޮންތަނަކީ؟ އަދި އޭނާގެ އެއްވެސް އެއްޗެއް ފޮނުވުމުގެ ކުރިން އެ ކީއެއް ހޯދާނީ ކިހިނެއް؟

npub އަކީ އަމިއްލައަށް ފުރިހަމަ އެއްޗެކެވެ. މީގެ އިތުރުން މީކީ ކޯގައި ލިޔެ، އަޑުއަހާގޮތަށް ކިޔައި، ނުވަތަ સ્કްރީންތަކުން ސެން ކުރެވިދާނެއެވެ. އަދި ކޮންމެ މީހަކަށްވެސް ކަލާނަށް މެސެޖެއް އެންކްރިޕްޓް ކުރަން ބޭނުންވާނީ މީގެ އެއްޗެހި އެކަނި އެވެ. ML-KEM-768 ޕަބްލިކް ކީއަކީ 1,184 ބައިޓްގެ އެއްޗެކެވެ. މީގެ އަޑުއަހާގޮތަށް ކިޔައިދިނުމަކީ ނުކުރެވިދާނެ ކަމެކެވެ، ޔޫޒަރ ނޭމެއްގައި އެކަށީގެން ނުވާނެއެވެ އަދި ހަމައެކަނި 32 ބައިޓްވާ އަތަންޓިޓީއެއްގެ ފެންވަރުގައި QR ކޯޑެއްގައި ބޭނުންކުރަންވެސް ނުވާނެއެވެ.

ސައިޒަކީ ފަސޭހަ ބައިއެވެ. ދަތި ބައިަކީ ދެވަނަ ކީއެއްގެ ސަބަބުން ތިން ވަކަލަ މައްސަލަތައް ކުރިމަތިވުމެވެ، އަދި މި ލިޔުމުގެ ބާކީވާ ބައިގެ ބޮޑު ބަހެއް އެއީ އެ މައްސަލަތަކަށް ޖަވާބު ދިނުމެވެ:

2ފަރުމާޖީގެ ހުރަސްތައް

ހަތަރު ކަނޑައެޅިފައިވާ ހުރަސްތަކަކީ މިޖަވާބަށް އަސަރުކޮށްފި، އަދި އެއްވެސް ކޯޑެއް ނުލިޔުމުގެ ކުރިން އާންމުކޮށް ފެންނަން އޮތް ފަރުމާތުތަކުގެ ބޮޑުބައި އެކަން ވަކިކޮށްލައިފިއެވެ.

  1. ސިއްރުތަކެއް އެންމެ މަދުކޮށް. Nostr ބޭ</span>ކުރާ ފަރާތްތަކުގެ އަތުގައި އެއް ސިކްރެޓެއް (secret) އެކަނި އޮވެއެވެ، އެއީ nsec އެއެވެ. ކޮންމެ އައު ސިކްރެޓެއް އައުމަކީ ތިޔަ ބޭ</span>ކުރާ ތާރީޚު (history) ދަތިވާނެ އަނެއް ކޮޅުވެސް އެއެވެ. އަދި nsec ބެކްއަޕް ކުރަން ދަންނަ މީހަކު، އެހެން އެއްޗެއް ބެކްއަޕް ކުރަން ނޭނގޭނެއެވެ. ބާބު 3.1 އިން ދައްކައިދެނީ މިއީ އެއްފަހައިން ފުރިހަމަކޮށް ކުރެވޭނެ ކަމެއް ނޫން ކަމަށެވެ — nsec އިން ނެގޭ ޕޯސްޓް-ކުއަންޓަމް (post-quantum) ކީއެއް އޭގެ ޕޯސްޓް-ކުއަންޓަމް ރައްކާތެރިކަމެއް ނުދޭއެވެ — އެހެންކަމުން މި ޑިޒައިންގައި ބޭނުންކުރީ އެއް ސިކްރެޓެއް އެކަނި އެއެވެ: އިންޓިޓިޓީ (identity) އަކަށް އެއް ފަހter އުފެއްދޭނެ ކީ މެޓީރިއަލެއްގެ (key material) އެއް ބައި އެކަނި، އެއީ nsec އާ އެއްވަރ ބައްޓަމާއި އެއް ތަނަކުން ހުށަހަޅާނެ އެއްޗެކެވެ، އެހެންނަމަ އެއްޗެއް ރައްކާތެރިކުރުން ދަންނަ މީހަކު އަނެއްޗަކީވެސް ރައްކާތެރިކުރުން ދަންނާނެއެވެ. ބާބު 10.1 ގައި އެކަމުން ކުރަންޖެހޭނެ ކަންތައްތަކާ ބެހިކޮށް ސާފުކޮށް ބަޔާންކޮށްފައިވެއެވެ.
  2. އަދަގުތި ނެތް. ކޮން ކީއެއް ކޮން ބޭފުޅަކަށް Belongކުރެތިބޭކަން ބުނަން ދެވޭނެ، އިތުބާރު ކުރެވޭނެ އެއްވެސް ސާރަވަރެއް ނެތް. އެފަދަ އެއްވެސް ސާރަވަރަކީ މެސެޖުތައް އެހެން ތަންތަކަށް ދިއްލެވޭނެ މައިކަންތBuildActionEntry Turn/Point އެވެ.
  3. ވަސީލަތްތަކެއް ގިނަ، އެއް އައިޑެންޓިޓީއެއް. Nostr އައިޑެންޓިޓީއަކީ އާންމުކޮށް އެކި ކްލައިންޓްތަކުން އެކުވަތަކުން ބޭނުންކުރާ އެއްޗެކެވެ. އޮތް ކޮންމެ ކީ މެޓީރިއަލެއްވެސް އެންމެން ކްލައިންޓްތަކުގައި އެއްގޮތަށް އޮތުމަށް ބޭނުންވެއެވެ. އަދި އެ ކީ މެޓީރިއަލް ގެންދާ މަގުތައް، މި ފީޗަރއިން ރައްކާތެރިވަމުންދާ މީހަކަށް ކިޔައިގަންނަން ނުޖެހޭނެއެވެ.
  4. މުވާދާތަކެއް ނެތް. "ކޮން ސައިފަރުތަކެއްތަކަށް ތިބޭނު؟" މިފަދަ އިން-ބޭންޑް (in-band) މުޒާކަރާތަކީ ހަރަކާތްތެރިއެއްގެ އަތުން އޮޅައިލައިގެން ފުލުހި (weaker) አማރަކުތަކެއް އުފެއްދުމަށް ބޭނުންކުރެވިދާނެ ތަނެކެވެ. މި ޑިޒައިންގެ ތެރޭގައި އެއްވެސް ਡައުންގްރޭޑް (downgrade) ކުރެވޭނެ ކަމެއް ނުހިމެނޭގޮތަށް ތައްޔާރުވެފައިވާނެއެވެ.

3އަމިއްލަ އަސްލު ސިއްރެއް

މައިގަނޑު ނިންމުމަކީ ML-KEM ޑީކެޕްސިއުލޭޝަން ކީ، އެއްވެސް އާންމު އަގުތަކަކުން ހާމަކުރަނުކުރެވޭ ކީ މެޓީރިއަލްއަކުން އުފެއްދި ކަމަކަށް ހެދުމެވެ. ކޮންމެ އައިޑެންޓިޓީއަކަށް އެއް ފަހަރު އުފެއްދޭ އެއް ރޫޓް ސިކްރެޓެއް ދެއެވެ:

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)

ރޫޓް ބޭނުންކުރާ ފަރާތަށް ހުށަހަޅައިދީފައިވަނީ nsec އަކަށް ހުށަހަޅާ ގޮތުގެ ފަދައިގައެވެ: bech32 މީހުންނަށް ކިޔެވޭނެ ފަދަ ޕްރިފިކްސް އާއެކު nympq, އެހެންނަމަ އެކަން ކިޔަވަނީ nympq1…, އައިޑެންޓިޓީ સ્કްރީނުގައި nsecގެ ފެންވަން، އެ ފަދަ ރިވީލް އިންޓަރެކްޝަންގެ ފަހު، އެ އިންޓަރެކްޝަނުން ވަނީ ކޮޕީކޮށް، އެއްވެ deވެސް ލޮގް ނުވެއޮށާއި އެއްވެ deވެސް ސީދާ ފޮނުވާފައި ނުވެއެވެ. މިއީ ޕާސްވޯޑެއް ނުވަތަ ލޮގިން އެއްވެސް ނޫނެވެ. މިއީ nsec އަކަށް ހަމަ އެއްވަރަކަށް ޔޫޒަރުންނަށް ސޭވްކުރެވޭނެ ކީ މެޓީރިއަލް އެކެވެ.

ސޯލްޓް ވަކި ދާއިރާއަކަށް ވަކިކޮށްފައިވަނީ ޚާއްޞަ ގަދަވެގެންނެވެ، އެހެންކަމުން އެހެން އެއް ސީކްރެޓަކުންވެސް އެއްވަރުގެ ކީޕެއަރެއް ނެރެވޭނެ نہیں۔ އެ epoch ކައުންޓަރ ރޮޓޭޝަން ފުލުވައިދެއެވެ (ސެކްޝަން 9).

3.1 އައިޑަންޓިޓީ ކީއިން ކީއެއް ނެގޭނެނީ ކީއްވެ

އެންމެ ސާފު ޑިޒައިންަކީ ބޭނުންކުރާ ފަރާތުގެ އަތުގައި މިހާރުވެސް އޮތް ސިކްރެޓް އިން ކީޕެއަރ ސީޑު ކުރުމެވެ:

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

މިއީ ހަތަރު ސަބަބުތަކަކީ، އެ ހުރިހާ ސަބަބެއްވެސް ހަގީގީ ކަމަކީ: ބެކްއަޕް ކުރަންދގވާ އާ އެއްޗެއް ނެތް، ސަބަބަކީ nsec އަކީ މިހާރުވެސް ބެކްއަޕް ކަމަށް 있기ތީ؛ ކޮންމެ ޑިވަଈސްއަކީ އޭގެ އޮޓޯމޭޓިކް ގޮތުން އެއްބަސްވާ، އަދި ސިންކްރonaise މުސާބަދާ އުނދަގޫވާނެ ކަމެއް ނެތް ކަމަށެވެ؛ ކޮންމެ އައިޑެންޓިޓީއަކަށް އެކަކު ބަދަލުކުރಬಹುದй އިއުލާންވުމެއް އޮތުމަކީ ސާފުކޮށް ރަނގަކުރާ ކަމެކެވެ، ސަބަބަކީ ޑިވަଈސްތަކަށް ކީ އާ ގުޅިގެން އެއްބަސްނުވެ އުޅެވޭނެ ނެތްތީ؛ އަދި ކީ އަންނާނީ އޭނާ ފޮނުވުމުގެ ކުރިން އޮތްތީ، އެހެންކަމުން ފުރަތަމަ ފަހަރު ބޭނުންކުރާ ވަގުތު ކްލައިންޓަކަށް އޭނާގެ ކަމަށް އެއްޗެއް ސީލް ކުރެވޭނެއެވެ.

މި ހަތަރު ފައިދާއަކީ އެއް ސަބަބަކީމާ ހަމައަތީ އެއްވެސް ބޭނުމެއް ނެތް ކަމެވެ. ބާޢުލާންކޮށްފައިވާ npub އަކާށި Shor's algorithm ހިންގުމުން nsec ލިބެއެވެ. Seed derivation އަކީ nsec އާ މައްޗަށް ކުރެވޭ ފާބިލިކަން އޮތް (public) އެލްގޮރިދަމް އެއް]. އެހެންވީހާ، ކްލಾಸިކަލް ބައި ބަލައިލާ މީހާ އާންމުކޮށް ހުރި އެވަނީ HKDF ހިންގުމުން ޕޯސްޓް-ކުއަންޓަމް ބައި އަލުން ތައްޔާރުކުރެއެވެ. 'Harvest-now-decrypt-later' އަށް (މި ފީޗަރ ވަނީ މި ކަމުން ރައްކާތެރިވުމަށް އޮތީއެވެ) - މިގޮތުން ތައްޔާރުކުރާ ކީއެއްގެ އެއްވެސް ފައިދާއެއް އިތުރުނުކުރެއެވެ.

އެންމެހި އެކަން އޭގެ ތެރެއިން އަންނަ ގަވާއިދު

ML-KEM ޑިކެޕްސިއުލޭޝަން ކީއަކީ nsec އިން ނެތް އަދި ކްލಾಸިކަލް އެންކްރިޕްޝަންގެ ދަށުން ދެކާފުވެފައިވާ އެއްވެސް އެއްޗެއް ނުވާ އެންޓްރޮޕީއަކުން އަންނަންޖެހޭ ކީއެކެވެ.

އެ ގަވައިދësގެ ދެވަނަ ބައި އެ ފުރަތަމަ ބައި ފަދައިން އެތައް ފަދަ މަސައްކަތެއް ކުރެއެވެ. އާންމު NIP-44 މެސެޖެއްގެ ތެރޭގައި ޔޫޒަރެއްގެ ވަސީލަތްތަކުގެ ދެމެދުގައި ސިންކްކްރަނައިޒްކުރާ، ވަކިން އުފެއްދިފައިވާ ސިކްރެޓެއް އޮތުމަކީ އިތުރު ފިޔަވަޅުތަކެއް ހިމެނޭ އެއް ފެއިލްވުމެކެވެ: ކޮންމެވެރިއަކީ އެ މެސެޖު މިއަދު ރެކޯޑްކޮށް، ފަހުން އޭގެ ކްލާސިކަލް ކީ ހޯދައިގަންނާނެއެވެ، އަދި އެއިން މޫލް (root) ހާމަވެގެންދާނެއެވެ. އެއީ، ފަހުގެ ސެކްޝަނުގައިވާ މަގުތައް އެ ފަދައިން އޮތުމުގެ ސަބަބެވެ، އަދި އެއިން އެއްވެސް މަގަކީ "އެކީ އެހެން ވަސީލަތަކަށް ފޮނުވާށެވެ" އީ ނޫންވެސް އެހެން ސަބަބަކީ އެއެވެ.

3.2 ބޭނުންކުރާ މީހާގެ އެހެން ވަސީލަތްތަކަށް ރޫޓް ފޯރުކޮށްދިނުން

ދެވަނަ ސެކްޝަނުގެ ކޮންސްޓްރެއިންޓް 3 — އެއް އައިޑެންޓިޓީ، ވަރަށް ގިނަ ވަސީލަތްތައް — މިތަނުގައި ހިސާބު ބޭނުންކޮށްގެން ހަމަޖައްސާނޭ ނޭތް، ސަބަބަކީ ކީ (key) އެއީ ވަސީލަތްތަކުން ކުރިން އޮތް އެއްޗަކާ ގުޅުން އޮތް ކަމެއް ނޫން ކަމުންނެވެ. އެކަމަކީ ޓްރާންސްޕޯޓް މެދުވެރިކޮށް ހަމަޖައްސަންވާނެ ކަމެކެވެ އަދި އޭގެ އެއް މަގު އެކަނި އެކަނި އެކަންވެއެވެ: ބޭނުންކުރާ މީހާ ... nympq1… އަމިއްލައަށް ކޯޑު ކުރަނީ.

ރޫޓް ދައްކަވާފައިވަނީ nympq1… nsec އާ އެކު، ދެވަނަ ވަސީލަތެއް އޭହା އެކަދަ ޕެނަލެއްގައި ކޮޕީކޮށް އެޅުމުން އެކަން ގަބޫލުކުރެއެވެ. އެއީ މުޅި މެކެނިޒަމް އެވެ. ކޯޑު ނުދީފައިވާ ވަސީލަތަކަށް ބައިވެރި 될ެއް ނުނem، އެކަން ސެކްޝަން 4.2 ގައި ތަފްސީލުކޮށްފައިވެއެވެ.

މެނުއަލް ފުރެންފާރިަކީ ފުރަތަމަ ފިޔާވަޅަކަށްވުރެ، ވިސްާލާފައިވާ ފިޔާވަޅެކެވެ. ބާގީ 3.1 ގައިވާ ގަވާއިދުން ބުނެވަނީ ރޫޓް އެއްވެސް ވަގުތަކުވެސް ކްލާސިކަލް އެންކްރިޕްޝަން މެދުވެރިކޮށް ދަތުރުކުރަން ނުޖެހޭ ކަމަށެވެ. އަދި މިއީ އޮޓޯމެޓިކްކޮށް ކުރެވޭ ކަމެއް ކަމަށް ހެދޭ ކޮންމެ މެކެނިޒަމެއް — ރޭލޭއަކީ މެދުވެރިކޮށް ސިންކްކުރުމާއި، އައި登ޓިޓީ ކީއަކަށް ވރަޕްކުރުމާއި – އެކަމަކީ އެ އުސޫލަށް ސީދާ ހިލާފުވާ ކަމެކެވެ. ބޭނުންކުރާ މީހާ އަމަލީގޮތުން ކުރާ މި ފިޔާވަޅަކީ، މި ރައްކާތެރިކަން ހަގީގީއެއް ކަމަށްވާ ސަބަބެވެ.

މި ފޯމެޓުން ވަރުޕްކޮށްފައިވާ (wrapped) މަގަކަށް ތާނަވަސް ދޭނެއެވެ: ރެކޯޑެއްގައި ވަރުޕްކޮށްފައިވާ (wraps) ތަކެ List އަކެއް ހިމަނެވިދާނެއެވެ، އެއިން ކޮންމެ އެއްޗެއްވެސް އަމިއްލަ ފަރުމާ އޭޑީ (AEAD) ބްލޮބެއް (blob) ކަމަށް ވާނެއެވެ، އެއީ އެހެން ވަސީލަތެއްގައި އަލުން ހެދޭނެ ކީ (key) އެއްގެ ދަށުންނެވެ — މިސާލަކަށް ޕާސްކީ PRF އައުޓްޕުޓެއް (passkey PRF output) ފަދައިންނެވެ. މިއަދު އެއްވެސް އެއްޗެއް މިފަދައިން ނުލިބެއެވެ، އަދި އެއްވެސް އެއްޗެއް މިފަދައިން ނުލިބޭދެން، nympq1… ކޯޑަކީ އެކަނި މަގު އެވެ. ބައި 10.1 ގައި އެކަމަށްかかる ವೆಚ್ಚ ބަޔާންކޮށްފައިވެއެވެ.

ރެކޯޑު އަމިއްލަ ގޮތުން އޭގެ އަމިއްލަ ސެޓިންގްސް ކެޓެގަރީގައި ހުރިވަނެވެ، nymchat-pq-root, އަދި އެހެން ކެޓަގަރީތަކުން ކުރާ ގޮތަށް ސިންކް (sync) ކުރެއެވެ. އެއީ އެއްވެސް ރެޕް (wrap) ނުލިބުނު ނަމަވެސް، އެއިން ބޭނުންތެރި މަސައްކަތެއް ކުރެއެވެ: އެއީ ދެވަނަ ވަންތި (device) އެއް އޭނާ ދެނެގަންނާނީ މި އައިޑެންޓިޓީއަށް މިހާރުވެސް ރޫޓެއް އޮތްކަން އެއިން ފެންނާތީއެވެ، އެއީ އޭނާ އަމިއްލަ ރޫޓެއް އުފެއްދުމުން ހުއްޓުވާ ކަމެވެ (ބާގީ 3.3).

ޑިޒައިން ނޯޓު: އައު ކީ ބޭނުންކުރެވޭނީ ނުވާ އެކްވަނަ ކެޓަގޮރީ

އެ nymchat-pq-root ކެޓެގޮރީ ކުރަންޖެހޭ ނޫން ރޫޓް އިން އުފެދިފައިވާ ML-KEM ކީއަށް އެންކްރިޕްޓްކޮށްފައިވާ. އެ ރޯގައިވަނީ ރޫޓްގެ އެންމެހައި ކޮޕީ އެކަނި، އެހެންކަމުން އެއީ ރޫޓް އިން އުފެދިފައިވާ ކީއެއްގެ ދަށުން ސީލްކޮށްލުމަކީ ކީ އޮތty ބޮކްސްެއްގެ ތެރޭގައި އޮތty ކީއެއްގެ ލޮކެއް ކަހަލަ ކަމެކެވެ: އެއީ އެއަށް ލިޔެފައިވާ ވަސީލަތް ގުޅުވައިގެންވެސް އެއްވެސް ވަސީލަތަކަށް އެއެވެ ހުޅުވާލެވިދާނެ ކަމެއް ނޫނެވެ. އެއީ ކްލಾಸިކަލީކޮށް ސީލްކޮށްފައިވާ ކަމެއް ނުވަތަ އެހެންވެސް ނޫނެވެ — NIP-44 އިން އަމ sobie އަށް — ނުވަތަ އެކަމެއްވެސް ނުކުރެވިފައިވާ ކަމެކެވެ. މިއީ މި ޑިޒައިންގައި ކްލಾಸިކަލް ރައްކާތެރިކަމަށް އިންޒާން ނުލިބޭ އެންމެހައި ވަނިތަނެވެ، އަދި އެކަން ކުރެވޭނެއެވެ: އެ ރޯގައި މިއަދު ރޫޓެއް ނެތty، އޮތty އެކަމަކީ އެއްޗެއް އޮތty އެ fact އެވެ.

ބާކީ ހުރި ކޮންމެ ސެޓިންގްސް ކެޓަގަރީއަކީ ރޫޓް އިން ނެގި ކީ (key) ބޭނުންކުރެވިދާނެ ކަމަށާއި، ބޭނުންކުރަންވާނެ ކަމަށެވެ. މިއީ އެކަނި މިންވަރެކެވެ. އަދި މިއީ ބާރުގަދަކަމުގެ ބަދަލުގައި ސިރުކިއުލަރިޓީ (circularity) އާ ގުޅުންހުރި މިންވަރެކެވެ.

3.3 އުފެއްދުމާއި ބޭނުންކުރުން

ބޫޓްވުމުން، ދެމި続く އިދަން އަކު ހިފަމުން، ކްލައިންޓެއް މަސައްކަތް ކުރަނީ މި ތަރުތީބުގައެވެ:

  1. އޮތް އެއް ... ހޯދާލާ nymchat-pq-root ރެކޯޑު.
  2. ރެކޯޑެއް ފަހިވެއްޖެ، އަދި މި ވަސީލަތުން އެކަން ފޮޅައިލެވިދާނެއެވެ — އެކަން ގުރަހަނެއިރު އަދި މި އައިޑެންޓިޓީ ޕޯސްޓް-ކުއަންޓަމް ކޭޕަބަލް ކަމުގައި އިއުލާން ކުރޭ.
  3. ރެކޯޑެއް ފެ蒂އްޖެ، އަދި މި ވަސީލަތުން އެކަން އުނުކާލަން ނުކարބުވެއްޖެ — އައު ރޫޓެއް އުފެއްދުމެއް ނުކުރައްވާ، އަދި އެއްވެސް އިޢުލާންތަކެއް ނެރުއްވުމެއް ނުކުރައްވާ. މި ޑިވައިސް ގުޅުވައިލުމަށް [އޭގައި] އެންޓަރީ ކުރުމުން... nympq1… މިހާރުވެސް އެއީ އޮތް ޑިވަଈސްއަކުން ކޯޑު.
  4. ރެކޯޑެއް ނެތް — ރޫޓެއް އުފެއްދުން، ރެކޯޑް ފޮނުވާލުން، އިއުލާންކުރުން އަދި ... ދައްކައިދިނުން nympq1… ޔޫސަރަށް އެކްވަތީކޮށް ކޯޑެއް ދީ، އެކަން ސޭވް ކުރެވޭނެ ގޮތަށް.

ތިންވަނަ ފިޔަވަޅަކީ ކޮށްލަން އުނދަގޫވެދާނެ ފިޔަވަޅެވެ. އަދި މިއީ ކޮންމެ އިންޕްލެމަންޓޭޝަނަކަށް ބެހެއްޓުމުގެ ބަދަލުގައި، އޯޑަރިންގް ލިޔެފައިވާ ސަބަބެވެ. އެކި ވަގުތު ރޫޓެއް އުފެއްދުމަށް ނިންމާ ދެ ވަސީލަތެއް، އެއް އައިޑެންޓީއެއްގެ ދަށުން އަމުދަމާ ނުވާ ދެ ރޫޓެއް އުފައްދާނެއެވެ. އަދި މި އޯޑަރިންގް އޮންނަ ސަބަބަކީ އެފަދަ މައްސަލައެއް ދިމާވުމުން ހުއްޓުވުމެވެ.

4ގާބިލުކަންތަކުގެ އިޢުލާން

ޑިރައިވް ކުރެވޭ ކީޕެއަރގެ ޕަބްލިކް ބައި، އެޑްރެސް ކުރެވޭ އެއްޗެއްގެ ގޮތުގައި ފާޝަރަކުރެއެވެ. NIP-01 ހަދިސާ — ބާވަތް 30078, ޓެގްކޮށްފައިވާ 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) އަކީ ރிலேއަކުން (kind, pubkey, d-tag) އިންނަން އޮތް ކޮންމެ އެކެއްގެ އެކަކު އެކި އެވެންޓެއް (event) ބެލެހެއްޓުމެވެ. އެހެންކަމުން، އަލުން ޕަބްލިޝް (republish) ކުރުމަކީ ކުރީގެ އަންނައުންސްމަންޓް (announcement) އެތަނޭ ބަދަލުކުރުމެވެ. އެހެންކަމުން، ކޮންމެ އައިޑެންޓިޓީއަކަށް (identity) އޮތty އެއް ކަށަވަރު ރެކޯޑެއް އެވެ. މިއީ "އެލިސޭގެ ކީ (key) ހޯދުން" އެކި ތަކެތި އެކުލަވާލައި ހަމަޖައްސަންޖެހޭ ލިސްޓަކަށްވުރެ، އެއް ފަހު ވަނަ ސީދާ މަޢުލޫމާތު ހޯދުމަކަށް ހެދޭ ކަމެވެ.

ސޮއި އަކީ ބާއްޖަވާ ކަމެވެ. މި އީވެންޓް ސައިންކުރެވިފައިވަނީ އައިޑެންޓިޓީ ކީ އިންނެވެ، އެހެންކަމުން "މި ML-KEM ކީ އޮތީ މި npub އަކަށްވީ ކީއެކެވެ" މި দাবী، npub އަށް ހަމައަކީ އެވަރަށް ވަރުގަދަ ކަމެކެވެ. ތަފާތު އެންކަޕްސުލޭޝަން ކީއެއް ބަދަލުކުރުމަކީ secp256k1 ސައިންޗަރެއް ފޮޖް (forge) ކުރަންޖެހޭ ކަމެކެވެ. އެކަން ކުރಬޭނެ ހަމަލާދޭ ފަރާތަކަށް KEM އާ ބެހޭގޮތުން ކަމެއް ކުރަން ނުޖެހޭނެއެވެ.

އިޢުލާންތަކުގެ މުއްދަތު ހަމަވަނީ. ހަތް ދުވަހުގެ އެންއައިޕީ-40 އެވެ މުއްދަތު ހަމަވުން، ކޮންމެ 24 ގަޑިއަކުން އަލުން ޝާއިޢުކޮށް، ރެކޯޑަކީ ކުރިން އޮތް ކްލައިންޓަކަށްވުރެ މިހާރުވެސް ހިނގަމުންދާ ކްލައިންޓަކާ ބެހޭ ތަފުސީލެއް ކަމަށް ބަދަލުކޮށްދެއެވެ. ރޫޓް އެކަށީގެން މުއްދަތު ހަމަވަނީ ނޫން؛ އެކަމާ ގުޅޭ ކްލެއިމް އެކަނި މުއްދަތު ހަމަވަނީއެވެ.

އުނގެއްވި އިޢުލާނެއް ފާހަގަކުރެވެނީ އެއްވެސް ކީއެއް (key) ނުހިމެނޭ އިޢުލާނެއް ފެންނަގައެވެ: އެކަކު އަނެކަކަށް އާންމު NIP-44 ފޮނުވައެވެ، އެއީ ކޮންމެ ލޮގިންއަކަށްވެސް ކարդައިލެވޭނެ އެއްޗެކެވެ، އަދި ކްލައިންޓް އާންމުކުރާލުމުން އޭގެ ފަހުގެ ކޮންެކްޝަނުގައި ޕޯސްޓް-ކުއަންޓަމް އެކްސްޗޭންޖް (post-quantum exchange) އަލުން ފެށުމަށް ފެށޭނެއެވެ. އެހެންކަމުން، ހަފުތައަކަށްވުރެ ގިނަ ވަގުތަކަށް ހމެހި އުޅުމުން، އެ ދުވަސްތަކުގެ ތެރޭގައި ފޮނުވާ މެސެޖުތަކުގެ ރައްކާތެރިކަމުން ބައިވަᱛނެއެވެ — އެ މެސެޖުތައް ކުއަންޓަމް-ރިޒިސްޓަންޓް (quantum-resistant) ނުވާ، ކްލާސިކަލީ އެންކްރިޕްޓް ކުރެވިފައިވާ މެސެޖުތަކުގައިވާނެއެވެ — އަދި އެއީ އެހެނިހެން އެއްވެސް ގެއްލުމެއް ނުވާނެ އެއްޗެކެވެ. މެސެޖު ފޮނުވުންނަށް އެއްވެސް އަސަރެއް ނުވާނެއެވެ، ކުރިން ރަސަލުވި އެއްވެސް އެއްޗެއް ކարդައިލެވޭނެ ގޮތުން ބަދަލެއް ނުވާނެއެވެ، އަދި އަލުން އަންނައިރު އެއްވެސް ކަމެއް ކުރަން ނުޖެހޭނެއެވެ.

އެ އަސިމެޓްރީއަކީ މުއްދަތު ހަމަވުމުގެ ސަބަބެވެ، އެއީ ކުއްލިއަކަށް ދިމާވެއްޖެ އެއްޗެއް ނޫނެވެ. އެއްޗެއް ނުވާނަމަ، ރެކޯޑެއް އޭގެ ނަން ބަޔާންކުރާ ކީއަށްވުރެ ދިރުއެވެ: މޮޅުކޮށްލެވިފައިވާ، ރިސެޓް ކުރެވިފައިވާ ނުވަތަ އޭގެ ރޫޓް ބަދަލުކުރެވިފައިވާ ވަސީލަތެއް އޮތުމުން، މިހާރު އެއްވެސް މީހަކު ނުފަހުމ ކީއަކަށް އެންކެޕްސުލޭޓްކުރަންޖެހޭ ކަމުގެ ދާއިމީ އަމުރަކަށް ބަދަލުވެއެވެ. އަދި އޭގެ ދަށުން ފޮނުވާ މެސެޖުތައް އެއްވެސް އޭރެކް އުފުވުމެއް ނެތި ދިމާވެގެން ދެމެއެވެ. ސޮލޯ ދުވަސްއަކަކީ އެ މުއްދަތުގެ މಿತಿތަކެވެ، އަދި ކްލައިންޓުން ސިއްތުވާނެ ކަމަށް ބޭނުންނުވުމުގެ ގޮތުން ރޭލޭތަކަށް އެ ރެކޯޑް އަމިއްލައެކަނި ފޮޅެލުމުގެ ފުރުސަތު ދެއެވެ.

ކީ ފީލްޑް އޭގެ ފޯމެޓް ނަން ކިޔަދެއެވެ. ކޮޅުއީ pk2އަދި އެ ނަންބަރު ބޭނުންކުރަނީ ޒީނަތުވުމަށް ނޫން، އެއީ އެއްބާވަތީގެ ބައެކެވެ: އެއީ އެ ކީ (key) ބޭނުންކުރާ މައުލޫމާތު ފޮނުވުމުގެ ފޯމެޓް (payload format) ކޮބައިކަން ދަޅައިދިނުމެވެ. އެ ފީލްޑް (field) ނޭނގޭ ކިޔުންތެރިއަކީ "Nymchat ކްލައިންޓް، ޕޯސްޓް-ކުއަންޓަމް ކީއެއް ނެތް" ކަމަށް ނިންމައިގެން، ކޮންމެ ލޮގިން (login) އަކުން ކިޔައިދާނެ އާދައިގެ NIP-44 ފޮނުވާނެއެވެ. މިއީ މެދުވެރިވުމުގައި ކުރިމަތިވާ އުނދ겪ުމެއްގެ ރަނގަޅު ގޮތެވެ. ފޯމެޓް ނަންބަރުތަކުން އަމަލީކޮށްދޭ ގަވާއިދަކީ: ނޭނގޭ ގާބިލިޓީއެއް ބޭނުންކުރަން ބޭނުންވުމަކީ ރައްކާތެރިކަމުގެ ކުރިމަތިލުމެކެވެއެވެ، ނަމަވެސް މެސެޖް ފޮނުވުން ހުއްޓާލުމެއް ނޫނެވެ. އަނެއް ފަރާތުން ބޭނުންކުރަން ނޭނގޭ ކީއަކީ، ކީއެއް ނެތުމަށްވުރެ ނරක އެއްޗެކެވެ; ސަބަބަކީ އެ ކީއުން ފޮނުވާ މެސެޖް، ދެފަރާތުންވެސް އެއްވެސް އީރަރެއް (error) ނުދައްކައި، ދިމާވެގެން ނުފެންނުމެވެ.

4.1 ނެތްކަން މާނައެއް އެކުލުވާލައެވެ އަދި ތިން އަގުތަކެއްގެ އެވެ.

ކުޑަކުޑަ ނަމަވެސް މުހިންމު ތަފްސީލެއް: އިޢުލާން ކުރަނީ ކޮންމެ Nymchat ކްލައިންޓަކުންވެސް، ޕޯސްޓް-ކުއަންޓަމް ގާބިލު ކްލައިންޓުން ކަމުގައި ނޫންވެސް، އަދި ކީ ފީލްޑަކީ އިންތިޚާބީ ކަމެކެވެ. އެއީ ދެއެއް ހާލަތުގެ ބަދަލުގައި ވަކިކޮށް ދެނެގަނެވޭ ތިން ހާލަތެކެވެ:

ފާހަގަކުރެވިސަބަބުއަމަލު ފޮނުވާލާ
ކީއެއް ހުރި އިޢުލާން Nymchat, ޕޯސްޓް-ކުއަންޓަމް ގާބިލު ހައިބްރިޑް
އިޢުލާން، އެއްވެސް ކީއެއް ނެތް Nymchat, ކްލಾಸިކަލްކޮތްވާ — ޕޯސްޓް-ކުއަންޓަމް އޮފް، ނުވަތަ އައިޑެންޓީގެ ރޫޓްއާ އަދިވެސް ގުޅިފައިނުވާ ޑިވައިސްކޮޅެއް. ކްލާސިކަލް NIP-17
އިޢުލާންެއް ނެތް ނޭނގޭ ކްލައިންޓް. Nostr ނުވަތަ Bitchat ބޭނުންކުރާ ކޮންމެ މީހަކުވެސް ކަމަށްވެދާނެއެވެ. ކްލާސިކަލް، އަދި ކޮމްޕަޓިބިލިޓީ ރެޕެއް

ތިންވަނަ ސަފު ހަތަރުވަނަ ސަފުގެ ތެރެއަށް އެއްބައިކުރުމަކީ ބޮޑު ގެއްލުމެއް 될ނެރެވެ. ކީއެއް ނެތް އިޢުލާނަކީ ފޮނުވާ ފަރާތުން ނިއަމްޗެޓް (Nymchat) ބޭނުންކުރާ ކަމަށް ސޮއިކުރެވިފައިވާ ބަޔާނެކެވެ. މިއީ އޭނާ ނޭނގޭ ފަރާތަކަށް ފޮނުވާއިރު ހިމަނަންޖެހޭ ސްޕެކިއުލޭޓިވް ކްރޮސް-ޕްރޮޓޮކޮލް ރެޕެއް (speculative cross-protocol wrap) ފޮނުވުމުގެ މަގުން ދިމާނުނުވުމަށް އެނބުރި ފުރުސަތު ދޭނެއެވެ.

4.2 ރޫޓް ހުޅުވައިލެނުކުރާ ވަçެއް ހަމަހަމައަކުން ހމަނީ

އިޢުލާންތައް ބަދަލުކުރެވޭނެއެވެ: އެއް އައިޑަންޓިޓީއަކަށް އެއް އީވެންޓެއް، އަދި އެންމެ ފަހުން ލިޔެވިފައިވާ އެއްޗަކަށް އިސްކަންދެވޭނެއެވެ. އެއީ ސިންގަލް-ރެކޯޑް ޑިޒައިން މަސައްކަތްކޮށްދޭ ކަމެވެ، އަދި އެއީ އަންނެވަންސް ކުރާނަމަ، ލިންކުނުވާ ޑިވަައިސްއަކު ނުރައްކާތެރިވާނެ ކަމެވެ. އަމިއްލައަށް ތައްޔާރުކުރި ކީއެއް އަންނެވަންސް ކުރާ ޑިވަައިސްއަކީ ހަގީގީ ރެކޯޑް އުނޑިލާލާނެއެވެ. އަދި އެއީ އެހެން ޑިވަައިސްތަކަށް ނުފתוޅުވޭ ކީއެއްގެ ދަށުން އެންކްރިޕްޓްކުރަން ހުރިހާ ޕީއަރެއްކޮށްވާނެއެވެ.

ވީމާ، ރޫޓެއް އޮތްކަން ދެނިގެން އޮތް ނަމަވެސް އެއަށް ވަދެލެން ނުކar കഴിയަ ވަސީލަތަކީ އެއްވެސް އިޢުލާންތަކެއް ނުކުރާނެއެވެ. އެއީ ހަލާކުވެފައިވާ ވަސީލަތެއް ނޫން، އަދި އެޕްލިކޭޝަނުން ބޭރުކޮށްލެވިފައިވާ ވަސީލަތެއްވެސް ނޫން: އޭނާގެ ކީ (key) އޮތް ކޮންމެ މެސެޖެއްވެސް އޭނާ އަދިވެސް ކարդައި، އާދައިގެ ގޮތުގައި މެސެޖު ފޮނުވާނެއެވެ. އެކަމަކު، އެއީ އެއަށް ލިންކްކުރަންޓަކީ ޔޫޒަރަށް އަންގާނެ އެއްޗެކެވެ. އިދަން (identity) އާ ދެކޮޅަށް ಮಾತನಾಡެވޭނެނަމަ، މައުނުވެ އުޅުމަކީ ރަނގަޅު އަމަލެކެވެ.

5ހޯދުމާއި ފޮނުވުމުގެ ނިންމުން

ކްލައިންޓުންނަކީ ޕީޔަރސްގެ ކީސް ދެ ގޮތަކުން ދަނީއެވެ. ދާއިމީ ސަބްސްކްރިޕްޝަނަކީ ޔޫޒަރަކު ހަގީގަތަކަށް މުވާދާކުރާ މީހުން — ހުޅުވާލެވިފައިވާ ކޮންވަރްސޭޝަންތަކާއި ގްރޫޕްގެ މެންބަރުން — ހިމަނައިގަންނާނީއެވެ. އެހެންކަމުން އެމީހުންގެ އިޢުލާންތައް އާދައިގެ ކަންތައްތަކުގެ ގޮތުގައި ލިބިގެންދާނެއެވެ. ފުރަތަމަ ފަހލުކަމަކަށް ބައްދަލުވާ ޕީޔަރަކަށް، މެސެޖު ފޮނުވާ ވަގުތު 2.5 ސިކުންތުގެ މުއްދަތެއްގެ ތެރޭގައި ވަކި ފަހަރަކަށް ކުރެވޭ ކުއަރީއެއް (one-shot query) ކުރިއެރުންނެރެ; އެއީ ހައްލުނުވާނަމަ، މެސެޖު ކްލާސިކަލް ގޮތުގައި ފޮނުވާލުންނެވެ. މިއީ ޕޯސްޓް-ކުއަންޓަމް އިތުރު ކުރަން ފެށުމުގެ ކުރިން އޮތް ގޮތެވެ، އާ ފެއިލްޔަރ މޯޑެއް ނޫނެވެ.

ނޭގަޓިވް ނަތީޖާއެއް މައިދިނުމަކަށް ބަދަލާ ދިހަ މިނެޓަކަށް ކޭޝްކުރެވިފައިވެއެވެ. އާ ޑިވައިސްއެއް ގުޅުވާ، ނުވަތަ ބްރައުޒަރ އަކްސްޓަންޝަން ލޮގިންއިން ލޯކަލް ކީއަކަށް ބަދަލުވާ ޔޫޒަރަކީ، ވާހަކަދައްކަމުން އ 있는 ވަގުތު ޕޯސްޓް-ކުއަންޓަމް ގާބިލުވެގެންދާނެއެވެ. އަދި ދާއިމީގޮތުން ކޭޝްކުރެވިފައިވާ "ނު" މިއްސާ ހާލަތަކީ، އެ އަންnæވަސްތަކުގެ މުދަތުވަންދެން ކްލಾಸިކަލް އަންކްރިޕްޝަންގެ މަތީގައެވެ.

5.1 ޑައުންގްރޭޑް އެޓޭކެއް ނުވަނީ ކީއްތެކަން

ރޫޓިންގ ނިންމުން އެކަނި ސުވާލަކަށް ކުދިވަނީ:

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

ކެޕަބިލިޓީ ނިއޮގޮޝިއޭޝަން، ސަޕޯޓްކުރެވޭ އެލްގޮރިތަމްތަކުގެ ލިސްޓެއް، އަދި ހަމަލާދާނެ މީހަކަށް ވަރުގަދައެއް ކުޑަކޮށްލުމަށްޓަކައި ކްލިއަރ ކުރެވިދާނެ ކޮންމެ ފީލްޑެއްވެސް ނެތް. އިޢުލާންކުރުން Holdކުރުން އަކީ ބަހުސްކުރުން ނިންމާފައިވަނީ، އަދި އެއީ ސޮއިކޮށްފައިވާ ކަމެކެވެ. އިޢުލާންތަކެއް ކަނޑާލުމުން ނުވަތަ ހިފެހެއްޓުމުން ކުރިމަތިވާ މައްސަލައަކީ، ހައިބްރިޑް މެސެޖެއް ފިލާވަޅުކުރެވޭނެ އެއްޗަކަށް ބަދަލުވުމެއް ނޫނެވެ; އެއީ މެސެޖް ކްލާސިކަލް ގޮތަކަށް ބަދަލުވުމެވެ - މިއީ މި ފީޗަރ އައުމުގެ ކުރިން އޮތް ހާލަތެވެ.

މީގެ އަންނަ ގޮތުންވެސް އެކަން ތިބެއެވެ އަދި އެއީ މާ މުހިންމު ކަމެކެވެ: ކްލައިންޓަކުން ހައިބްރިޑް ފޮނުކުރެއެވެ. އެކަނި އޭގައި ކީއެއް ހުރިވަން، އަދި އެ ކީ އަތުލައި ހުރުމަކީ ރިސީވަރަށް އެކަން އަލިލުފަތްކުރެވޭނެ ކަމުގެ ތަހުގީގާތެރިކަމެކެވެ. ޕޯސްޓް-ކުއަންޓަމް ގޮތުގައި މެސެޖެއް ފޮނުވުމުގައި، އެ މެސެޖެއް ކިޔުމެއް ނުކުރެވޭ މީހަކަށް ފޮނުވާނެ އެއްވެސް ހާލަތެއް ނު އޮވެއެވެ.

6ހައިބްރިޑު ބިނާކުރުން

Nymchat އަކީ NIP-44 ބަދަލުކުރާ އެއްޗެއް ނޫން. އެއީ އެއަށް ވަށައިގެން އޮންނަ އެއްޗެކެވެ. ބަދަލުނުކުރެވިފައިވާ NIP-44 ސައިފަރޓެކްސްޓަކީ އެތެރޭގެ އަލަގު ކަމަށް되며، އަދި ML-KEM ކީސް ބޭނުންކޮށްގެން އެއާ ބޭރުގައި AEAD އައު އަލަގެއް ހަދާލާފައިވެއެވެ:

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)

މެސެޖް ކարդައިލުމަށްޓަކައި ދެ ސިއްރުވެސް އަދިވެސް ހޯde ލުން ބޭނުންވެއެވެ: ބޭރުގެ ފენა ފޮޅުމުން ލިބެނީ NIP-44 ސައިފަރްޓެކްސްޓް އެކަނި، އަދި އެއައްޔާ ހުޅުވާލުމަށް ކްލާސިކަލް ECDH ބޭނުންވެއެވެ. secp256k1 ބަލިކޮށްލާ ކުއަންޓަމް އެޑްވަރްސަރީ އަކަށް އެތެރޭގެ ކީ ލިބުނު ނަމަވެސް، އޭނާއަށް އަދިވެސް ML-KEM ކުރ सामना 해야ވެއެވެ; ML-KEM ބަލިކޮށްލުމުން ބޭރުގެ ފენა އުނިވެ، NIP-44 އަދިވެސް ސަލާމަތުން ހުރެއެވެ. ކޮންމެ އިންޕުޓަކީ އޭގެ މިންވަރަށް ފާޑުވެގެންވާ ތަން ވަނީ:

ކޮންމެ މެސެޖަކުން ވަކْتައި އެންކެލްސިއުލޭޝަން (encapsulation) އާކަން ކުރެއެވެ. މުދާލުލުންނު ބޭނުންކުރާ ML-KEM ކީއަކީ ދިގުތަންމާ ބޭނުންކުރެވޭ ކަމެކެވެ، ނަމަވެސް ކޮންމެ މެސެޖަކީ އަމިއްލަ ސައިފަރޓެކްސްޓެއް (ciphertext) އޮތް މެސެޖެކެވެ އަދި އެހެންކަމުން އަމިއްލަ... kem_ss. އެއީ ރޭންޑަމްކުރުމުގެ ބަދަލުގައި ނޮންސް ތައްޔާރުކުރުން ރަނގަޅު ކަމަށް ފޮޅުކޮށްދޭ އެއްޗެވެ: ChaCha20-Poly1305 (ކީ، ނޮންސް) ރޭޕެއް އަލުން ބޭނުންކުރުމުން ބުރާކަން ކުރެވިދާނެއެވެ، އަދި މިތިބަ ގޮތުގައި ކޮންމެ މެސެޖަކަށްވެސް ކީ އައު އެއްޗެކެވެ، އެހެންކަމުން އެއްވެސް ރޭޕެއް ތަކުރާރު ނުވެއެވެ.

6.1 ފަށިތައް ވަކިވަކިކޮށް އޮތty ކީވެން

އެތެނަ አማވަޅަކީ ސިކްރެޓް ދެކޮޅު އެއްކޮށް އެއް ސިންގަލް ކޮންވަރޭޝަން ކީއެއް ތައްޔާރުކޮށް އެކަން NIP-44 އަށް ދިނުމެވެ:

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

އެ ބިނާކުރާ ގޮތް ކްރިޕްޓޮގްރާފީއެއްގެ ގޮތުން ސާބިތުވެއެވެ. އެއަށް އޮތty އެއް ހިސާބީ މައްސަލައެއް: އެއަށް ބޭނުންވަނީ ecdh_x, ECDH އައުޓްޕުޓްގެ ރޯ އެކްސް-ކޯޑިނޭޓް، ކީ މެޓީރިއަލްގެ ގޮތުގައި — އަދި ބްރައުޒަރ އެކްސްޓަންޝަން (އެންއައިޕީ-07) ނުވަތަ ދުރުގައިވާ ސޮއިކުރާ ފަރާތެއް (އެންއައިޕީ-46) އެ އަގު އެއްވެސް ދުވަހަކު ދޭނީއެއް ނޫން. އެއީ ކަލަރަށް (caller) އެހީތެރިވަމުން NIP-44 ކުރާނެއެވެ އަދި ސައިފަރޓެކްސްޓެއް (ciphertext) އެނބުރި ދޭނެއެވެ. އެއީ އެޕްލިކޭޝަނުން ނުވާލެނިވި ތަނެއްގައި ކީ (key) ބެހެއްޓުމުގެ މައި ބޭނުމެވެ.

އެހެންކަމުން ސިކްރެޓްތައް އެކުލަވާލުމުން، އައިޑަންޓިޓީ ކީ ސައިނަރެއްގައި ބެހައްޓާ ކޮންމެ ލޮގިންތަކެއްވެސް ބացކޮށްލެއެވެ، މިއީ އެންމެ ފަރުތަވާ ބޭޔޫސަރުންނެވެ އަދި ކީ ޑިރިވޭޝަން (key derivation) އަށް ކުރާ އެއްވެސް މަސައްކަތަކުން އެއަށް ބަދަލެއް ނުހިދާނެއެވެ. ލޭޔަރިންގީ (Layering) މި ބޭނުންތެރިކަން (dependency) ފިލާވަޅުތަކުން މިންތަކަށް ފޮޅުވާލައެވެ: NIP-44 މުޅި ގޮތުގައި ބޭނުންކުރެވޭނެއެވެ އަދި އައިޑަންޓިޓީ ކީ ބެހައްޓާ އެއްވެސް އެއްޗެއްގައި (ސައިނަރ ގުޅުވައިގެން) އުފެއްދޭނެއެވެ، އަދި KEM ބައި އުފެއްދާނީ ކްލައިންޓްގެ އަތުގައި ސީދާ ބެހައްޓަވާ ރިކަވަރީ ކޯޑުންނެވެ. ސައިނަރ ލޮގިންތަކަކީ ދިމާ ދެކޮޅުންވެސް އާންމު ޕޯސްޓް-ކުއަންޓަމް ބައިވެރިންނެވެ.

މިކަމުގެ އަގަކީ ބޭންޑްވިޑްތެރިނެވެއެވެ، އަދި އެއީ ކުޑަ އަދަދެއް ނޫނެވެ. ML-KEM ސައިފަރޓެކްސްޓަކީ 1,088 ބައިޓްތަކެކެވެ އަދި މިއީ ކޮންމެ މެސެޖަކާ އެކުވެސް ފޮނުވާންޖެހޭ ކަމެކެވެއެވެ، މީގެ base64url-encoding އަށްފަހު އެއީ 1,451 ކެރެކްޓަރެވެ؛ ބޭރުގައިވާ AEAD އިން 16-ބައިޓްގެ Poly1305 ޓެގެއް އިތުރުކުރެއެވެ އަދި އޭގައި ހިމެނޭ NIP-44 ޕޭލޯޑް ތިންނަކުން އެއް ބައި (1/3) އަކަށް އިތުރުކުރެއެވެ. 50 ކެރެކްޓަރެކޭ މެސެޖެއް 176 ބައިޓުން 1,712 ބައިޓަށް ބޮޑުވެއެވެ، އަދި 2,000 ކެރެކްޓަރެކޭ މެސެޖެއް 2,820 ބައިޓުން 5,238 ބައިޓަށް ބޮޑުވެއެވެ. މެސެޖު ވަރަށް ކުރު ކަމުގައިވިޔަސް، ކޮންމެ މެސެޖަކީ އެންމެންވެސް 1.5 KB އަކަށްވާނެއެވެއެވެ. މިއީ ޝަރީކުކޮށް ބޭނުންކުރާ ސެކްރެޓެއް ބޭނުންކުރުމުގެ ބަދަލުގައި ކޮންމެ ފަހަރަކު އާ އަލިކޮށް އިންވެކަޕްސްލޭޓް (encapsulating) ކުރުމުގެ އަގެވެ.

6.2 އަމިއްލަގޮތުން ތަފްސީލުކުރެވޭ ޕޭލޯޑްތައް

އެ pq2. ޕްރިފިކްސް ބޭނުންކުރުމުން ފެށުމުގެ މަސައްކަތް މަރުހަލާ މަތީގައި ކުރިއަށް ގެންދެވިދާނެއެވެ: އެއީ އޭގައި ހުރި މައުލޫމާތުން އޭގެ ތަފްސީލު އެނގޭނެ އެއްޗެކެވެ. އެހެންކަމުން، ކްލައިންޓަކީ ޓެގްއެއްގެ މައްޗަށް ބަރަ ނުވަތަ އަނެއް ފަރާތުން އެއްޗެއް ސަޕޯޓްކުރާނެކަމަށް ހަނދާން ބަހައްޓައިގެން ނޫނެވެ; އެއީ ޕޭލޯޑް ބަލައިގެން އޭގައިވާ މައުލޫމާތުން އޭގެ ዲކްރިޕްޝަން ކުރާނެ ގޮތް ނިންމާލައެވެ. ޕްރިފިކްސް ނޭނގޭ ރީޑަރެއްގެ ކަމަށްވާނަމަ، އެ މައުލޫމާތު ކޮންމެހައި ކޮންމެ ގޮތަކުން ކިޔައިލުމުގެ ބަދަލުގައި އެ މައުލޫމާތު ފޮޅަން ނުލިބޭނެއެވެ. އަދި ޕޯސްޓް-ކުއަންޓަމް (post-quantum) ފިޔަވަޅުތައް ކުރަން ފެށުމުގެ ކުރިން ސީލްކުރެވިފައިވާ މެސެޖުތައް، އެއްވެސް ބަދަލެއް ނުކޮށް އާދައިގެ NIP-44 ଭ ގޮތުގައި ކިޔައިލެވޭނެއެވެ.

ނުބުނެ އެނގޭ ބކާލުކުރުން

ML-KEM decapsulation ތަރުޖަމާކުރުމަކީ އެއްވެސް ފަހަރަކުވެސް ބާއްލުނުނުވާ ފެންވަރުގަައިގެން ތައްޔާރުކުރެވިފައިވާ އެއްޗެކެވެ: އޮޅުންފިލުވާލެވިފައިވާ ciphertext އަކީ، Fujisaki-Okamoto transform އިން އޭގެ ކުލަވަލަށް ގެލުވާލެވިފައިވާ ކަން ހާމަކޮށްދޭނެ ކަމަކަށްވުރެ، ގޮތެއް ނެތް (deterministic) pseudo-random secret އެއް ދޭނެއެވެ. އެހެންކަމުން، ކީ (key) ނު ރަނގަޅު ކަމުގައިވާނަމަވެސް އެއީ KEM ލޭޔަރުގައި ހާމަކޮށްދޭނެ ކަމެއް ނޫނެވެ – އެއީ NIP-44 އިން HMAC failure އެއްގެ ގޮތުގައި ހާމަކޮށްދޭނެ ކަމެކެވެ، އަދި މިއީ ކޮންމެހެން ކޮލްސިކަލް ކީއެއް ނު ރަނގަޅު ކަމުގައިވާނަމ에도 불구하고 ހާމަކޮށްދޭނެ ގޮތެވެ. ބޭނުންކުރާ ފަރާތްތަކުން ދެކަމަށްވެސް ބަލަނީ އެއްގޮތަށްވާތީ، ބާއްލުނުނުވާ ކަމުގެ މެދުވެރިކަމުން އެއްވެސް ވަކިކޮށްދެވިދާނެ ސިގްނަލެއް ނުލިބެއެވެ. މިއީ ސެކްޝަން 9.1 ގައިވާ candidate list ބޭނުންކުރެވިދާނެ ގޮތެވެ: ކްލައިންޓަކީ ކޮންމެ ކީއެއް އަންދާލައި، އެއިން ކޮން ކީއެއް ރަނގަޅުކަމެއް NIP-44 އިން ބުނެދޭނެއެވެ.

6.3 ހެދުމުގެ ލިފާފުގެ ދެ ފަށު

A އެންއައިޕީ-17 އަމިއްލަ މެސެޖަކީ އެންއައިޕީ-59 އެވެ ގިފްޓް ރެޕް: ސޮއި ކުރެފައިނުވާ އަހުބާރެއް، ފޮސްޓުކުރާ ފަރާތުގެ އައިޑެންޓިޓީ ކީގެ (kind 13) ދަށުން ސީލްކޮށްފައިވާ، އަދި ކޮންމެ މެސޭޖަކަށް ވަކިން އުފެއްދޭ ވަގުތީ ކީއެއްގެ (throwaway key) (kind 1059) ދަށުން ރެޕްކޮށްފައިވާ އެއްޗެކެވެ. އައިޑެންޓިޓީ ކީ ސީދާ ބޭނުންކުރާ ލޮގިންއެއްގައި، Nymchat އިން އެ ދެ ލޭޔަރުތަކަށް ބައިހާލައިގެން، އޭގެ ކޮންމެއަކަށް އަމިއްލަ އެންކަޕްސުލޭޝަނެއް (encapsulation) ދޭއެވެ.

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
ދެ އެންކްރިޕްޝަން ލޭޔަރުތަކަކީ ހައިބްރިޑު (hybrid) ގައެވެ. ކޮންމެއަކީވެސް މިނިވަން ML-KEM އެންކްލަޕްސުލޭޝަން (encapsulation) އެކް de ކުރެވިފައިވާ އެއްޗެކެވެ. ބޭރުގެ ލޭޔަރަކީ ވަ�ަރާތްކުރެވޭނެނަމަވެސް ވަކި ސިކްރެޓެއްގައި ކީ (key) ކުރެވިފައިވާ އެއްޗެކެވެ، އެހެންކަމުން އެ ވަރަޕް (wrap) އަކުން ފޮނުވާ މީހާ ހާމަކޮށްދޭނެއެއް ނުވާނެއެވެ.

ސައިނަރ ލޮގިންނަކީ ބޭރުގެ ފަށުގެ ބައިމެだけއެވެ. ސީލް އަކީ ސައިނަރ އިން އާންމު NIP-44 އަކާ ގޮތުން ތައްޔާރުކުރާ އެއްޗެކެވެ — އެއައްޔާ ތައްޔާރުކުރާ ކީއަކީ އެޕްލިކޭޝަނަށް ބެލެވޭ އެއްޗެއް ނޫންނެވެ — އެހެންކަމުން އެއީ އެތަނުގައީ ހައިބްރިޑައިޒްކުރެވޭ އެއްޗެއް ނޫންވެއެވެ. މިކަން މި ހަމަލާގެ ކުރިމަތީގައި އެއްވެސް އަސަރުެއް ނުކުރެއެވެ: ސީލްއަށް ފޯރެންވަނީ ރެޕް (wrap) އާ މެދުން בלައިގެންނެވެ، އަދި ރެކޯޑަރަކުން ރެކޯޑްކުރާނީ އެ ރެޕްއެވެ. ރެކޯޑްކުރެވިފައިވާ ޓްރެފިކް ހުރި ހަމަލާދޭ ފަރާތެއް، ސީލްއެއް ހުރިކަމެއް ބެލެވުމުގެ ކުރިން ML-KEM ބަލައިލުމަށް މަސައްކަތް ކުރަންވާނެއެވެ.

7ގްރޫޕް މެސެޖުތަކާއި ބައިގޮތުން ފެތިގެންވާ ކަވަރޭޖް

ގްރޫޕް މެސެޖެއްަކީ އެއް ސައިފަރޓެކްސްއެއް ނޫނެވެ. އެއީ އެއް ޕްލެއިންޓެކްސްޓެއް ކޮންމެ މެމްބަރަކަށް ވަކިވަކި ފޮނުވާފައިވާ އެއްޗެކެވެ، އޭގެ ކޮންމެ ކޮޕީއެއްވެސް އެ މެމްބަރާގެ އަމިއްލަ ML-KEM ކީއަށް އެންކެޕްސުލޭޓްކޮށްފައިވާ ކަމެކެވެ. ކީއެއް ޕަބްލިsh ކުރާފައިވާ މެމްބަރަކަށް ލިބެނީ ހައިބްރިޑް ރެޕްއެކެވެ; ކީއެއް ޕަބްލިsh ނުކުރެވިފައިވާ މެމްބަރަކަށް ލިބެނީ ކްލಾಸިކަލް ރެޕްއެކެވެ.

މިއީ ސާދާ ގޮތުން ކުރާ އަމަލެއްގައި ކުށްވާނެ ಲೆކާބާރީގެ މައްސަލައެކެވެ. މެންބަރުން 10 މީހުންގެ ތެރެއިން 8 މީހަކަށް ހައިބްރިޑް ކޮޕީއެއް ފޯރުކޮށްދިނަމަ، މެސެޖަކީ ނޫން އަށް-ދިހަ އަށް ބައި ރައްކާތެރިކޮށްފައި. ހީނަކައަކަށް ބޭނުމީ ދިހައެއްގައިވެސް އެއްވަރުވާ ޕްލޭންޓެކްސްޓެއްގެ އެއް ކްލާސިކަލް ކޮޕީއެއް، އެހެންކަމުން މެސެޖް ރައްކާތެރިވަނީ އަމަލީގޮތުން... ކޮންމެ ނަކަލަކީ.

Nymchat އޭރުން ފަން-އައުޓް (fan-out) ކުރަމުންދާއިރު ކޮންމެ މެސެޖެއްގެ ކަভারেޖް ބަލައިގަނެ އަންނަ ގޮތުންނެވެ — މި އަދަދު އެނގޭނީ ރެޕްސް (wraps) ތައްޔާރު ކުރަމުންދާ ވަގުތު އެކަނި އެވެ — އަދި މެސެޖު ރައްކާތެރިކޮށްފައިވާ ކަމަށް ބުނުމުގެ ބަދަލުގައި، ބެޖް އިން ދައްކަނީ "މެންބަރުން 10 ގެ ތެރެއިން 8 އަކަށް ކުއަންޓަމް-ރިޒިސްޓަންޓް (quantum-resistant) އެވެ" ކަމަށެވެ. އަދަދެއް ނުލಭ𝓸ވާ ހާލަތްތަކުގައި، އޭގެ މާނައަކީ އާންމުކޮށް... ލިބިއްޖެ ގްރޫޕް މެސެޖެއްގައި (ފަން-އައުޓް ގުނަނީ ފޮނުވާ ފަރާތުން އެކަނި)، އިންޓަރފޭސް ބަޔާން ކުރަނީ ފުރިހަމަ ރައްކާތެރިކަމެއް ނޫން، ބައެއް ރައްކާތެރިކަމެއް އެކަންވެސް ދައްކައިދެއެވެ. އަމިއްލަ ކޮޕީއެއްގެ ބާއްޖަވެރިކަމުން ފުރިހަމަ ރައްކާތެރިކަމެއް 있다고 ބުނުމަކީ މެސެޖެއްގެ މުޅި ހާލަތާ ގުޅޭގޮތުން ބޮޑުކޮށް ބުނުން 될ނެވިހެއެވެ.

7.1 ސިލްޑް އިން ރިޕޯޓްކުރާ ކަންތައްތައް

ސިފަ ...ގެ بارےގައިވާ ހަގީގަތް ބަޔާންކުރެއިދޭއެވެ މެސެޖް, އެއީ ފޮނުވި ސޮފްޓްވެއަރާ ބެހޭގޮތުން ނޫން:

މެސެޖް ސީލްކުރާ ވަގުތު ނިންމުން ރެކޯޑްކުރެވޭ، ފަހުން އެއްވެސް ފަރާތެއް އަންނާ އިޢުލާންތަކުން އަލުން ಲೆކުބަހާލައިގެން ނޫން. މިހާރު އޮތް ސައިފަރޓެކްސްޓްކޮޅަކަށް ކުރިއަށްވުރެ ރައްކާތެރިކަން އިތުރުވެދާނެ ނޫން، އަދި އައު އިޢުލާނެއްގެ ބާރުގައި ކުރީގެ މެސެޖްތައް އަލުން ރީޑްރޯކުރާ އިންޓަރފޭސްއަކީ ރީލޭއެއްގައި އޮތް ބައިޓްސްތަކާ ބެހޭގޮތުން ދޮގު ކަމެއް ބުނާ އިންޓަރފޭސްއެކެވެ.

މަތީގައިވާ ގުރޫޕްގެ ގަވާއިދުތަކަކީ މީގެ ބަދަލަކަށް ނޫން، މީގެ އިތުރުން އަމަލުކުރަންޖެހޭ ގަވާއިދުތަކެކެވެ: ގުރޫޕް މެސެޖެއް ފުރިހަމައަށް ރައްކާތެރިވާނީ ކޮންމެ މެންބަރެއްގެ ކޮޕީ އޮތުމުންނެވެ. އަދި ކަވަރެޖް ކައުންޓެއް ނެތް ގުރޫޕް މެސެޖެއް ފެންނާނީ 'partial' (ބައެއް) އެކަމަށް ބެހެނިގެންނެވެ.

8ތިބާއަށް އެޑްރެސްކޮށްފައިވާ ނަކަލުތައް

ކްލައިންޓެއް އިން ސޭވްކުރެވޭ ގިނަ ކަންތައްތަކެއް، އެއީ ޔޫޒަރަށް ހިއްސާވެފައިވާ އޭނާގެ އަމިއްލަ ވަންތަން (identity) އިން އެންކްރިޕްޓް ކުރެވިފައިވާ ކަންތައްތަކެވެ: ސިންކް ކުރެވިފައިވާ ސެޓިންގްސް، ކޮންވާސޭޝަން ލިސްޓް، ގްރޫޕް ކީސް، އަދި މެސެޖް އާކައިވް އެ[]. މި ކަންތައްތަކުން އެއް މެސެޖަކުން ދެނެގަންނަންވީ ކަމަށްވުރެ ބޮޑު މައުލޫމާތެއް ޔޫޒަރާ ބެހޭގޮތުން އެނގޭނެއެވެ. އެހެންކަމުން، މެސެޖުތައް ކަހިނަ ސަލާމަތްކޮށްފައި އޮތް ނަމަވެސް، މި ކަންތައްތައް އާދައިގެ ގޮތުގައި ބެހެއްޓުމަކީ އެންމެ ބަލިކުދި އެންމެ ގިނަ ސޭވް ކުރެވިފައިވާ އެއްޗެއް ކޮށްލުމެވެ. އެއީ ޔޫޒަރަށް ހިއްސާވެފައިވާ އޭނާގެ އަމިއްލަ ރޫޓް-ޑިރައިވް ކުރެވިފައިވާ ކީއަކަށް އެންކްރިޕްޓް ކުރެވިފައިވާ އެކަހެން ހައިބްރިޑް (hybrid) އިންތެގްރޭޝަނެކެވެ — ސެކްޝަން 3.2 ގައި ބަޔާންކޮށްފައިވާ އެކްސެޕްޝަން (exception) އެކަނި ފިޔަވައި، އެ... nymchat-pq-root އެ ކެޓެގަރީ އެކަނި، އެއީ އޭގައި އޮތް ކީއެއްގެ ދަށުން Seal ކުރެވިދާނެ ކަމެއް ނޫން.

މި އާޓިފެކްޓްތަކަކީ ဒီޒައިން އެންމެ މުހިންމުވާ ތަންތަނެވެ. ސެޓިންސް ބްލޮބެއް ނުވަތަ އާކައިވް ރޯއެއް އަހަރުތަކެއް ވަންދާލަމުން އެއްތަނެއްގައި އޮންނަނީ، މިއީ 'މިހާރު ހޯދައި ފަހުން ކޮޑުކުރާ' (harvest-now-decrypt-later) އަމާޒުކުރާ ފަރާތެއް ހޯދައި ގރޫޕްކުރާ ކަންތައްތަކުގެ ސިފައެވެ — އެއްވެސް މެސެޖެއްގައި ހުންނަ ކަމަށްވުރެ މިއީ މާ ބޮޑު ކަމެކެވެ، އެ މެސެޖަކީ ގިނަވެސް ޔޫޒަރުގެ ނަފްސަށް ވަގުތީ ކަމެއް ކަމުގައިވެސް ހިނދެއެވެ.

މިތާގައި ކީއަށްވުރެ ފޯމެޓަށް ބާރުވެރިވަނީ އެއް ކަނޑައެޅިފައިވާ ކަމެކެވެ. އަމިއްލަ އެޑ್ರೆސް ކުރެވިފައިވާ ކޮޕީއެއް ... އިން ކިޔެވޭނެ ފަދައިން ކޮންމެ އެކައުންޓުގައިވާ ވަސީލަތްތަކުގެ ކޮ Each device އޭނާގެ އިލާންކުރުމުގައި ހިމަނާފައިވާ ރޮސްޓަރުގައި އޭނާއަށް ހުޅުވޭނެ ކަންތައްތައް އިލާންކުރެއެވެ. އަދި އެކައުންޓުން ލިޔަނީ އެ ހުރިހާ ވަސީލަތްތަކަކުންވެސް ކարդެވޭނެ ކަންތައްތައް އެކަނި އެވެ. އެއަށްވުރެ އެއްވެސް އެއްޗެއް ލިޔުމަކީ ވަސީލަތެއް އޭގެ އަމިއްލަ ސެޓިންގްތަކުން ވަކިވެދާނެ ކަމެކެވެ – މިއީ ސެކްޝަން 3.2 އިން އެހެން ގޮތަކުން، އެހެން ދިމާއަކުން އަންނަމުންދާ އެފެންނުނު ފިލާވަޅު (silent failure) ރައްކާތެރިކުރާ ކަމެކެވެ.

ބުނަންޖެހޭ ކަނޑައެޅިފައިވާ ކަމެއް.

އައިޑަންޓިޓީ ހިފަހައްޓަވާ ނަމަވެސް ރޫޓް ނެތިފިނަމަ، އެ ޑިވަޖަކަށް އޭގެ އަމިއްލަ ސެޓިންގްސް ހިމެނޭގޮތުން، ރޫޓް އިން ނެތް ކީ (key) އަކުން ސީލް ކުރެވިފައިވާ އެއްވެސް އެއްޗެއް ހުޅުވާލަން ނޭނގޭ. މިއީ އޭގެ ޚާއްޞަ ނަތީޖާއެއް، ފަރުވާނުކުރެވިފައިވާ ކަމެއް ނޫނެވެ. އަދި މިއީ ސެކްޝަން 3.3 ގައި އާ ރޫޓެއް މިންޓް (mint) ކުރުމުގެ ބަދަލުގައި ލިންކް (link) ކުރުމަށް އެފާޑް ކުރާ ސަބަބެވެ: ދެވަނަ ރޫޓެއް އުފެއްދުމުން އެ ބޮބް (blob) ކިޔުން އެދޭނެ ގޮތެއް ނުވާނެއެވެ، އެއީ އައިޑަންޓިޓީގެ ކީ މެޓިރިއަލް ދެ ބައިކޮށްލުން އެވެ. ޔޫޒަރ އޭއީ ލިންކް ކުރާދެން، އެ ޑިވަޖް މަސައްކަތް ކުރަމުންދާނެއެވެ — އޭނާގެ ކީ ހުރި އެއްޗެހި ކިޔައި، އާދައިގެ ގޮތުގައި ފޮނުވާނެއެވެ.

ބްރައުޒަރ އެކްސްޓަންޝަންތަކެއް ހިނގާލާ ޑިވަސްތަކެއް ނުވަތަ ރީމޯޓް ސައިނަރެއް (NIP-46) އިންޓިސާބު (derive) ހިފުމަށް އެއްވެސް nsec އެއް ނެތް، ނަމަވެސް އޭނާގެ ކައިރީގައި ރިކަވަރީ ކޯޑް އޮތްވާނެއެވެ. އަދި ސެކްޝަން 6.1 ގެ ފޮޅުފޮޅުގޮތުން ބައްޓަންކޮށްފައިވާ ގޮތުގެ ދަށުން، ޕޯސްޓް-ކުއަންޓަމް ބައިއަށް ބޭނުންވާ ކޮން ކަމެއްވެސް އެއެވެ: ސައިނަރު އާދައިގެ ގޮތުން NIP-44 ލޭޔަރ އުފެއްދޭއިރު، ކްލައިންޓް އަމިއްލައެކަނި ބޭރުގެ ލޭޔަރ ކީ (key) ކުރާނެއެވެ. މިފަދަ ލޮގިންއެއް ދެ ފަރާތުންވެސް އާދައިގެ ބައިވެރިއެކެވެ.

9ރޮޓޭޝަން

އެ epoch ޑެރިވަޭޝަންގައި ހުންނަ ކައުންޓަރަކީ އައު ކީ މެޓީރިއަލެއް ނެތި ރޮޓޭޝަން ކުރެވޭނެ ގޮތެވެ. އެއަށް އަގު އިތުރުކުރުމުން އެއް އޭގެ (root) އިން އައު ކީޕެއަރެއް އަދި އަލުން ޕަބްލިޝްކޮށްފައިވާ އިޢުލާންތަކެއް އުފެދެއެވެ; އެހެންކަމުން އެކްސްޗޭންޖް ކުރެވޭ ރެކޯޑުން އެހެން ފަރާތްތަކަށް (peers) އައު ކީ އޮޅާގަނެއެވެ. އެހެންކަމުން ރޮޓޭޝަން ކުރަން ފަހታ ދުވަހަކު އެއްޗެއް ލިޔަން ނުޖެހެއެވެ: ރޫޓް (root) އަކީ އިންޓިޓީއަކަށް އެއްފަހታ އުފެދޭ އެއްޗެކެވެ އަދި އެޕޮކް (epoch) އަކީ އެއީ ރޮޓޭޝަން ކުރާ އެއްޗެކެވެ.

9.1 ކުރީގެ އެޕޮކްސްތައް ބެލެހެއްޓެއެވެ، އަދި އެއްވެސް އެއްޗެއް އަލުން އެންކްރިޕްޓްކުރެއްވުމެއް ނުވަނީއެވެ.

ކީއެއް ބަދަލުވާއިރު އެއްވެސް އެއްޗެއް އަލުން ނުލިޔެއެވެ. ކްލައިންޓަކީ މިހާރުގެ އެޕޮކް އިން ފެށިގެން އެޕޮކް - 3 އަށް ދެން އޮޕަންކުރެވޭނެ ކަންތައްތައް ތައްޔާރުކުރެއެވެ. އެހެންކަމުން، ކީ ބަދަލުވުމުގެ ކުޑަ ވަގުތެއް ކުރިން ސީލްކުރެވިފައިވާ މެސެޖެއް، އެ މެސެޖު ފޮނުވާ ވަގުތު ބޭނުންވެ 있던 ކީޕެއަރ ބޭނުންކޮށްގެން އަލުން އޮޕަންކުރެވޭނެއެވެ.

އެ ވަގުތު ދާއިރައަކީ ރޮޓޭޝަން ރައްކާތެރިކަމާއެކު ކުރެވޭނެ ގޮތެއް ކަމަށެވެ؛ އެއާނެ ނެތިނަމަ، ކޮންމެ ރޮޓޭޝަނެއްގައިވެސް އެކޮޅު އޮތް އެއްޗެއް އުދާފޫލުވާނެއެވެ. ކުރިން ސީލް ކުރެވިފައިވާ އެއްވެސް އެއްޗެއް، އައި登ޓިޓީގެ މުއްދަތު ހަމަވާންދެން ކިޔެވޭނެ ގޮތެއްގައި އޮންނާނެއެވެ. އެއީ، ޔޫޒަރަށް އަލުން ނުފުޅުވަނެސް މެސެޖެއް ކިޔުން ނުވުމަކީ، އޭގެ ރައްކާތެރިކަން ފަހުން އިތުރުކުރެވޭނެ ނުވާ މެސެޖަކထက် މާ ނරක ކަމެއް ކަމަށްވާތީއެވެ (ވަގީދު 10.5).

10މިއީ ކޮން އެއްޗަކަށް ރައްކާތެރި ނުކުރަނީ؟

ޑިޒައިންތަކަކުން ހާސިލުކުރާ ކަންތައްތަކަށް އެކަނި ލިސްޓުކުރާ ލިޔުމެއްަކީ ސިސްޓަމެއްގެ ތަފްސީލެއް ނޫނެވެ. އަދި އިންޓަރފޭހެއްގައި ސެކިއުރިޓީ ޕްރޮޕާޓީއެއް ބޮޑަށް ބަޔާންކުރުމަކީ އެއީ ނުހިމަނައިލުމထက် މާ ބޮޑު މައްސަލައެކެވެ. ތިރީގައިވާ ކަންތައްތަކަކީ މި އަންނަ ބައްޓަމުން ރައްކާތެރިކުރެވޭނެ ކަންތައްތަކުގެ ދަށުން ނުވާ ކަންތައްތަކެވެ.

10.1 ރޫޓަކީ ދެވަނަ ސިކްރެޓެކެވެ، އަދި އެއީ އަލުން ހޯދެވޭނެ ކަމެއް ނޫނެވެ.

މިއީ މި ޑިޒައިންގެ ހަގީގީ އަގުއެވެ. ސެކްޝަން 2 ގައިވާ، ޔޫޒަރަކަށް ބެލެހެއްޓުމަށް އެއްޗެއް އެކަނި އޮންނަންޖެހޭނެ ކަމުގެ ކަނޑައެޅިފައިވާ ގަณฑ์ ފުރިހަމަކުރެވޭނެއެއް ނުވާނެއެވެ: nsec ވަކلے ބޭނުންކޮށްގެން ޕޯސްޓް-ކުއަންޓަމް ކީ (post-quantum key) އަލުން ތައްޔާރު ކުރެވޭނީ ނުވާނެއެވެ، ސަބަބަކީ އެއްވެސް އާންމު އަދި އެހެން ސިކްރެޓެއްގެ އެކުންތެރިކަމުން އެކަމެއް ހާމަކޮށްލަން ނުކުރެވޭނެ ކަމަށްޓަކީއެވެ. އެއްވެސް ޑިވައިސްއަކުން ރޫޓް (root) ހިފަހައްޓާ ނުވާނަމަ އަދި ސެކްޝަން 3.2 ގައިވާ ރެޕްސް (wraps) ތިރީގައިވާ އެއްވެސް އެއްޗެއް ހުޅުވާލަން ނުވަތަ ނުކުރެވޭނަމަ، ރޫޓްއިން ނެތިގެން އޮތް ކީއަށް ސީލްކޮށްފައިވާ މާއްލާ، އަލުން ހޯdeއްލާލަން ނުވާނެއެވެ. އެކަމަކީ އެސްކްރޯ (escrow) ނެތް ކަމަށާއި، އަދި އެކަމެއް ހިފަހައްޓާނެ އެއްވެސް އިދާރާއެއް ބޭނުންނު ނުވާނެ ކަމަށް ޚާއްސަ ގޮތުން ކަނޑައެޅިފައިވާ ކަމެކެވެ.

މެނުއަލް ފުރޮޅުތަކުން ފޮނުވުމަކީ އެކ jedinަ މަގު ކަމަށްވާނަމަވެސް، މިއީ ފުރަތަމަ ފާހަގަކުރާ ވަގުތަށްވުރެ ބޮޑު މައްސަލައެއް ކަމުގައި ވެދችނެވިދާނެއެވެ. އެއްވެ deވެސް ކޮޕީ ނުކުރާ... nympq1… ކޯޑް އެންއިވެއަރގެ ކޮންމެ ތަނަކުންވެސް އޭގެ އެއް ކޮޕީ އެކަނި އެބަހުރި، އެއީ އެއް ޑިވަސްއެއްގަ އެވެ. އެ ޑިވަސްތައް ނުލިގެންނަމަ، އެއާ ގުޅިގެންވާ ކޮންމެ ޕޮސްޓް-ކުއަންޓަމް މެސެޖެއް، ސެޓިންގްސް ބްލޮބެއް އަދި އާކައިވް ރޯއެއްވެސް ނުލިގެންދާނެއެވެ. އެ nsec އެހީތެރިވެދޭނީ ނޫނެވެ; މުޅި ޑިޒައިންތައް ބިނާވެފައިވަނީ އެ ސިފަގައެވެ.

ފަހުން އިތުރުކުރާ ކޮންމެ ވެރެޑް ފާތެއް (wrapped path) އަކީ މެނުއަލް ފާތެއް ފަދައިން އެންމެހައި ފެންނަންޖެހޭ މިންގަނޑުތަކުން ފަހުވާންޖެހޭ އެއްޗެކެވެ. ހަމަލާ ދިނުންތެރިންނަކީ އެންމެ އަގުހެޔޮ ފާތަށް ހަމަލާ ދިނުމެވެ، އެހެންކަމުން އިންތިޒާމެއްގެ އަގަކީ އޭގެ އެންމެ ದುರ್ޒާފު ރިކަވަރީ ރޫޓުގެ އަގެވެ — މިސާލަކަށް، ހިތުގައި ބާއްވައިލެވޭ ފާސްފްރޭޒެއް ބޭނުންކުރުމުން މުޅި އިންތިޒާމުގެ އަގަކީ އެ ފާސްފްރޭޒުގެ އަގެވެ. އަދި ވެރެޑް ރޯ (wrapped row) އަކީ "ހާރެސްޓް ނައު-ޑިކްރިޕްޓް ލޭޓަރ" (harvest-now-decrypt-later) އަދިފަރސަރީއަކު، މިހާރު އިންތިޒާރުކޮށް ފަހުން ވަގުތުނުލައި ކޮޑުކޮޅު ނުކިނުމަށް ބޭނުންކުރާ އެއްޗެކެވެ.

10.2 އޯތެންޓިކޭޝަން، ރަހಸ್ಯކަން އިން ވަކިކޮށް

Nostr ގައިވާ ކޮންމެ ސިގްނެޗަރަކީ secp256k1 މައްޗަށް ބިނާކޮށްފައިވާ Schnorr ސިގްނެޗަރެކެވެ، އަދި މިއީ އެއީ އެއްވެސް ބަދަލެއް ނުހިނދައިވާ ކަމެކެވެ. ކުއަންޓަމް ކޮމްޕިއުޓަރެއް ހިވާލި ހީރާވަރަކަށް ސިގްނެޗަރުތައް މޮކާކޮށް، ވަގުތުންވެސް ބޭނުންކުރާ މީހަކަށް އޭނާގެ ނަމުގައި އަމަލުކޮށްލެވިދާނެއެވެ. ހައިބްރިޑް ކީ އެކްސްޗޭންޖްއިން ރައްކާތެރިކޮށްދެނީ 'މިއަދު ހޯދައި، ފަހުން ވަކިކުރުން' (harvest-now-decrypt-later) އިންނެވެ: މިއަދު ޓްރެފިކް ރެކޯޑުކުރާ ހީރާވަރަކަށް، ފަހުން އެތަކުން ކިޔައިނުދެވޭނެއެވެ. މިއީ މި މެޝިން މިހާރުވެސް އޭނާގެ އަތުގައި އޮތް ހީރާވަރަކާދެކެ މެސެޖެއް މޮކާކުރަން ނުކުރެވޭނެ ކަމަށް ނުދައްކައިދޭނެއެވެ. މި ވެރިކޮށްދިނުމުގެ ވެރިކަން އެޕްލިކޭޝަންތަކަށް ގަސްތަކު އެޅިފައިވާނީ؛ ލޮކް (padlock) އިން އަންދާނުކުރާނީ އޯތަންޓިކޭޝަން (authentication) ކަމަށާއި، ރިހާން (shield) އިން އަންދާނުކުރާނީ ކޮންފިޑަންޝަލިޓީ (confidentiality) ކަމަށެވެ. އެއީ އެ ދެ ކަންފާނު ވަކިވަކި ސިMBOLތަކެއްގެ ގޮތުގައި ބޭނުންކުރާ ކަމެކެވެ، ކީތަކީ މެސެޖެއްގައި އެއް ކަމެއް އޮތް ނަމަވެސް އަނެއް ކަމެއް ނުދެނިދާނެތީއެވެ.

މީގެ އިތުރުން، 4 ވަނަ ސެކްޝަނުގައިވާ އިޢުލާންނަކުން ދެވިދާނެ ކޮންމެ ކަމަކަށް އައީވެސް މಿತಿ އަމާޒުކުރެއެވެ. npub އަކާއި ML-KEM ކީއަކާ ދެމެދު އޮތް ގުޅުންަކީ secp256k1 ސިގްނެޗަރެކެވެ، އެހެންކަމުން އެ ސިގްނެޗަރުތައް ޖާލީކޮށްލެވޭނެ މީހަކަށް އޭގެ ބަދަލުގައި އޭނާގެ އަމިއްލަ ކީއެއް ބޭނުންކުރެވިދާނެއެވެ. މުސްތަގުބަލުގައި އަންނާނެ ނުރައްކާތެރި ފަރާތަކާ ހުރި ސިއްރުކަން (confidentiality) ރައްކާތެރިކުރުމަކީ، އެފަރާތާ ހުރި އިތުބާރުހެޔޮކަން (authenticity) އަކީ އެއްޗެއް ނޫނެވެ.

10.3 މެޓަޑޭޓާ

ކަޑޯ ކަފާލުމުން ފޮނުވާ މީހާ ފިލުވައިލެއެވެ، ރަސީލުކުރާ މީހާވެސް އެކެއްގެ އިތުރުން p އެތެރޭގެ މެސެޖުގެ ޓެގް، ބާވަތާއި، އަދި ވަގުތު. މީގެ ސަބަބުން އީވެންޓެއް އޮތްކަން، އޭގެ ސައިޒު، ނުވަތަ ރީލޭއަކުން އެ މެސެޖު ރެސީވުކުރި ވަގުތު ފިލުވާލައިފައެއް ނުވާނެ. މި ޑިޒައިންގެ އެއްވެސް ބައިންވެސް ޓްރެފިކް އެނަލިސިސް ބަލައިގަންނަނީ ނޫން.

10.4 އޮފްލައިން މެޝް

Nymchat ގެ ބްލޫތޫތް މެsh ޓްރާންސްޕޯޓަކީ އޭގެ އަމިއްލަ ހޭންޑްޝޭކެއް އޮjąވާ ވަކި ޕްރޮޓޮކޯލެކެވެ. އަދި މި މަސައްކަތުން އެކަން ކަވަރު ކުރެވޭނީ ނޫނެވެ. މެsh އާ މެދުވެރިކޮށް ފޮނުވާ މެސެޖުތަކަކީ ކްލާސިކަލް މެސެޖުތަކެކެވެ.

10.5 މެސެޖުތައް ފޮނުވާފައެވެ

ދެފަރާތުން އެއްފަރާތެއް އަދިވެސް ކްލާސިކަލްކަމުގައި ހުރިއިރު ރެކޯޑްކޮށްފައިވާ ސައިފަރޓެކްސްޓް އަބަދަށް ކްލާސިކަލްކަމেই އޮންނާނެއެވެ. އެއީ މިހާރުވެސް އޮތް އެއްޗެއް ކަމުން އަލުން ސީލް ކުރެވިދާނެއް نہیں۔ ރައްކާތެރިކަން ފެށޭނީ މި ފީޗަރ އެކްޓިވެޓްކުރި ވަގުތުން ނޫން، ދެފަރާތުންވެސް ޕޯސްޓް-ކުއަންޓަމް ކީސް ހުރި މެސެޖުން ފެށޭނެއެވެ.

11ބަލައިލާފައިވާ އިޚްތިޔާރުތައް

ކައިރިވުންކީއްވެ ނުވަތަ؟
އައިޑަންޓިޓީ ކީއިން ޕޯސްޓް-ކުއަންޓަމް ކީ ފަރުމާކުރައްވާލާށެވެ. ނުAcceptކޮށްފި. މި ޑިރިވޭޝަންަކީ nsec މައްޗަށް ކުރެވޭ އާންމު އެލްގޮރިދަމެއް، އަދި ކުއަންޓަމް އެޑްވަރްސަރީއަކީ ޕަބްލިޝްކުރެވިފައިވާ npub އިން nsec ނެގޭނެއެވެ. އެހެންކަމުން ކްލಾಸިކަލް ބައި ބަލިކޮށްލުމުން، ޕޯސްޓް-ކުއަންޓަމް ބައިވެސް އޭގެ އެހެންކަމުން ބަލިކޮށްލެވޭނެއެވެ. މިއީ މި ޕޭޕަރގައިވާ ކޮންމެ ޑިސްޓްރިބިއުޝަން މައްސަލައެއް ހައްލުކުރި، ނަމަވެސް އެކޮންމެވެރިއްޔާކުލައެއްގެ ދެކުލުތަކުން ރައްކާތެރިނުވި އެއްޗެކެވެ. ސެކްޝަން 3.1.
NIP-44 އާ މެދުވެރިކޮށް ރޫޓް ޔޫޒަރުގެ އެހެނިހެން ވަސީލަތްތަކަށް ފޮނުވާލާ. އެކި ގޮތ들에 ފޮޅައިގެން ހުށަހަޅާފައިވިޔަސް، އެއީ އެއް މައްސަލައެއްގެ ސަބަބުން އިންކާރުކުރެވިފައިވާ ކަމެކެވެ. ކްލާސިކަލް އިންކްރިޕްޝަންގެ ތެރެއިން ފޮނުވާލާފައިވާ ރޫޓެއް، އެ މެސެޖް ރެކޯޑްކުރި ކޮންމެ މީހަކަށްވެސް ފަހުން އޭގެ ކީ ބަލައިގެން އަލުން ހޯދައިގަންނަންނެގުރެވެ. ރޫޓް އޮންނަނީ އެފަދަ ކަމަކު ހުއްދަކުރުމަށެވެ.
ކޮންމެ ޑިވައިސްއެއްގައި ވަކިވަކި އުފެއްދިފައިވާ ML-KEM ކީޕެއަރެއް ނު स्वीގަތް ކުރެވިއްty. ޑިވައިސްތަކުގައި ތަފާތު ޑީކެޕްސިއުލޭޝަން ކީސްތަކެއް އޮންނާނެއިރު، ކޮންމެ އައިޑެންޓީއަކަށް އޮންނަ އެކަނި ބަދަލުކުރಬಹುದable އިޢުލާނަކުން އެ ހުރިހާ ކީސްތަކެއް ހިމަނައިލަން ނުދާނެއެވެ. ޕީއާސްތަކವು އެންމެ ފަހުން ފޮ่นކޮށްފައިވާ ކީސްއަކަށް އެންކްރިޕްޓް ކުރާނެއިރު، އެހެން އެއްވެސް ޑިވައިސްއަކަށް އެ ނަތީޖާ ކարդައިލުމަށް ނޭނގޭނެއެވެ. ކޮންމެ އައިޑެންޓީއަކަށް އެއް ރޫޓެއް ކަނޑައަޅައި، ސެކްޝަން 3.2 ގައިވާ މަގުތަކުން (paths) އެއަށް ބަދަލުތަކެއް އަންނައިރު، އެކަމަކީ އެ މައްސަލަ ނުވާނެ ގޮތެވެ.
ރޫޓް PIN އަކެއްގެ ދަށުން ކުށިލާށެވެ. ނުގ্ৰܗަނުކޮށްފި. ވެރޕްޑްކޮށްފައިވާ ރޯ (wrapped row) އަތުގައިވާ އޮފްލައިން އެޓާކަރަކާ ދެކޮޅަށް ހަތަރު އަދަދެއްގެ ޕީއެން (PIN) އަކީ 13 ބިޓަކާ ގާތަކަށްވާ އެއްޗެކެވެ. އެއީ ދެ 256-bit ފާތްތަކާ އެކު ބެހިކޮށްދިނުމަކީ އެންމެ ސުޑުވެރޕް (weakest wrap) ގެ އަގު ނުވަތަ ގޮތް ރަނގަޅުކޮށް ނުކިޔައިދިނުމެކެވެ.
npub ފުޅުކޮށް ދެ ކީސްވެސް ހިމަނާލާށެވެ. 1,184 ބައިޓް އަކީ ހިއްސާކުރެވޭނެ އައިޑެންޓިފައިޔަރެއް ނޫން، އަދި މިއީ 32 ބައިޓްގެ ގޮތުގައި ކަނޑައެޅިފައިވާ އެޑްރެސްއެއްގެ ޕާސިންގް ކުރާ ހުރިހާ މިހާރު އޮތް Nostr ކްލައިންޓަކަށް ވެސް އޭގެ އުނދަގޫ ކުރާނެއެވެ.
މުހިންމު ޑިރެކްޓަރީ ހިދުމަތެއް ޔަރެޓްވޯކް އޮތީ އެކަން ދުރުކުރުމަށެވެ، ނަމަވެސް މިއީ އެކަން އަލުން ތަޢާރަފުކޮށްދިނުމެކެވެ. ލުކްއަޕްއަށް އިޖާބަދޭ ފަރާތަކީ ކޮން މެސެޖެއް ކարդެވޭނީ ކަން ނިންމައިދޭ ފަރާތެވެ.
ކޮންމެ މެސެޖަކުடனும் ކީ ލި જોડާށެވެ. އެއްވެސް ހައްލެއް ނުދެއެވެ: ފޮނުވާ ފަރާތަށް ބޭނުންވަނީ ރިސީވަކާގެ ފުރަތަމަ މެސެޖަށް ކުރިން އޮންނަ ކީ، މިއީ ކުރިން އެކަން ގެންދަން ދޭނެ އެއްވެސް މެސެޖެއް ނެތްތީއެވެ.
އިން-ބޭންޑް ގާބިލުތައް މަޝްވަރާކުރުން ޑައުންގްރޭޑް ސަރފަސްއެއް އުފައްދައެވެ. ކެޕަބިލިޓީ ފްލެގެއް ފယ်ކޮށްލެވޭ ހަމަލާދޭ ފަރާތަކީ ކްލާސިކަލް ޕާތަށް މަޖބޫރުކުރާ ފަރާތެކެވެ.
ޕޯސްޓް-ކުއަންޓަމް އެކަނި، ކްލಾಸިކަލް ބައި ނެތް secp256k1 އާ ގުޅޭގޮތުން ކުރެވިފައިވާ ދިހައެއްތަކެއްގެ ދިރާސާތައް ދޫކޮށްލައިގެން، މާ އަލިކޮށް އައީ އަސާސީ އުނިއްޔަތެއް ބޭނުންކުރެއެވެ. ހައިބްރިޑެއް ފލަނީ އޭގައި... ދޭތި ފެލްވުން.

12ތަންފީޒީ އެއްވަންތަކަން

Nymchat އިން މި ކޮންސްޓްރަކްޝަންގެ ދެ އަމުދުންނު އިންޕްލެމެންޓޭޝަން ދެ ކޮޅެއް ފޯރުކޮށްދެއެވެ — އެއްކޮޅަކީ ވެބް އެޕްލިކޭޝަނަށް JavaScript ގައި ތައްޔާރުކޮށްފައިވާ އިންޕްލެމެންޓޭޝަނެއް، އަދި އަނެއްކޮޅަކީ މޮބައިލް އެޕްލިކޭޝަންތަކަށް Dart ގައި ތައްޔާރުކޮށްފައިވާ އިންޕްލެމެންޓޭޝަނެއް، މީގެ ތެރޭގައި އެއްވެސް ކުރީގެ އެއްޗެއް ބޭނުންނުނުކޮށް އާންމަށް ތައްޔާރުކޮށްފައިވާ ML-KEM-768 ޕޯޓެއް ހިމެނެއެވެ. އެއްގޮތުގެ އެއް ޕްރިމިޓިވެއްގެ ދެ އިންޕްލެމެންޓޭޝަން އޮތުމަކީ އާންމުކޮށް ރިސްކެއްގެ ކަމެކެވެ، އެހެންކަމުން އެ ދެ އިންޕްލެމެންޓޭޝަން ބޭނުންކުރީ އެއްގޮތަށް އަންނާނެ ކަމަށް ބޭނުންނުނުކޮށް، އެކޮޅަކީ އަނެއްކޮޅާ ޗެކްކުރުމަށްޓަކައި އެކޮޅަކާ އެކު ބޭނުންކުރާނެވެ.

Dart ML-KEM އިންޕްލެމަންޓޭޝަން ރަސްމީ އާ އަލިއަޅައިލައި ވަންޑަފީކަމު ކުރެވިފައިވަނީ ނިސްޓް ACVP ML-KEM-768 އަށްޓަކައި ނަންނެވިފައިވާ ނަތީޖާތަކުން ކުރާ ޓެސްޓުތައް (ML-KEM-*-FIPS203) — ކީ-ޖެނަރޭޝަން (key-generation) 25، އެންކަޕްސުލޭޝަން (encapsulation) 25 އަދި ޑީކެޕްސުލޭޝަން (decapsulation) 10 ކޭސްތައް، އަމިއްލަ ސުއިޓެއްގެ ގޮތުގައި ރަންކުރެވެއެވެ. މިއީ އަމަލީގޮތުން ތަރުތީބުކުރެވޭ (implementation) އެއްޗެއް ސާ Trueކުރުމަށް NIST އިން ޝައިރުކުރާ vectors އެވެ، އެހެންކަމުން އެކަން ކާމިޔާބުވުމަކީ ޕޯޓް (port) އެކީ އެއްޗެއް ކަމަށް示す ހެކި، ދެ ކްލައިންޓުން އެއްބަސްވުމުގެ ހެކި בלޫމެއް ނޫނެވެ. އޭގެ މަތީގައި، ޖާވާސްކްރިޕްޓް ރެފަރެންސް އިން އުފައްދާފައިވާ ടെސްޓް vectors ގެ ހިއްސާލެވި ފިކްސްޗަރެއް (shared fixture) — ސީޑް ޑެރިވަޭޝަން (seed derivation)، އެންކަޕްސުލޭޝަން، ދެ ގޮތުގެވެސް ޕޭލޯޑް ފޯމެޓްތަކާއި، ފުލް ކިފްޓް ވރެޕްތައް (complete gift wraps) — ދެން ދެ ടെސްޓް ސުއިޓުންވެސް ފާސްކުރެއެވެ. ރޫޓް ސީކްރެޓް (root secret) އަކީ އެ ފިކްސްޗަރެއް ބަދަލުކުރުމެއް ނޫނެވެ، އެއީ އެއަށް އިތުރުކުރާ އެއްޗެކެވެ: ރޫޓް އިން ސީޑަށް، ރޫޓް އިން ކީ-ޕެއަރއަށް، ރޫޓްގެ ޕަބްލިކް ފިންގަރޕްރިންޓް، އަދި ބޭރުގެ ލޭޔަރގެ ޑެރައިވް ކުރެވޭ ކީ، ނޮންސް އަދި ގުޅުންހުރި ޑޭޓާއަކީ އަމިއްލަ vectors އެވެ، އެހެންކަމުން ދެ ކްލައިންޓުން ދެމެދުގައި އެއްޗެއް ... nympq1… ކޯޑު ބުނާނީ މެސެޖެއް ސީލްކުރަން ބޭނުންކުރާ ބައިޓްތަކަށެވެ. ދެ އިންޕްލެމަންޓޭޝަނެއްގައި އެއްވެސް ފާޑުކަމެއް އައިއްޔާ، އަނެއް ކްލައިންޓަށް ނުފתוލެވޭ މެސެޖެއް އުފެއްދުމުގެ ބަދަލުގައި ބިލްޑް ފެއިލްވާނެއެވެ.

މި ތަކާ ތެރެއިން ފިންގަރޕްރިންޓް ނަންގާނެ ކަމަކީ އެއީ ވަރަށް މުހިންމު އެއް ކަމެކެވެ. މިއީ އެއް މެޝިނަކަށް "މިއީ އަޅުގަނޑު ބޭނުންކުރާ ރޫޓް އެވެ" އަދި "މިއީ ތަފާތު އެއްޗެއް އެވެ" މި ދެ ކަމުގެ ދެމެދުގައި ވަކިކޮށްދޭ އެއްޗެވެ. އަދި އަނެއް ކްލައިންޓެއްގެ ފިންގަރޕްރިންޓް ތަކުރާރުކުރެވޭނެ ނުވާނަމަ، އެ ކްލައިންޓަކީ ރަނގަޅު ރެކޯޑެއް ހުރި ނަމަވެސް އެއްވެސް ރެކޯޑެއް ނެތް ކަމަށް ގަބޫލާނެ ކްލައިންޓެކެވެ—އޭގެފަހު، ސެކްޝަން 3.3 އަށް އަމަލުކޮށް، ދެވަނަ ރޫޓެއް އުފައްދައި އައިޑެންޓިޓީ ބައިބައިވެގެންދާނެއެވެ. މިއީ އެହି ސަބަބާހުރިގެން އެކަމަށް މެދުވެރިވާ އެއް ކަމެކެވެ.

Nymchat އަކީ އޯޕަން ސޯސް AGPL-3.0 ގެ ދަށުން. މިތަނުގައި ބަޔާންކޮށްފައިވާ ކްރިޕްޓޮގްރާފިކް ކޯރަކީ js/nym-crypto.js އަދި js/modules/pq.js ވެބް ކްލައިންޓްގައި، އަދި lib/core/crypto/ އެކު lib/features/identity/pq_registry.dart މޯބައިލް ކްލައިންޓްތަކުގައި

ކުރު، ފަންނީ ނޫން ތަފްސީރަށްޓަކައި، ބަލަބަލަ... ކުއަންޓަމް ރިސިސްޓަންޓް އިންކްރިޕްޝަން އާ ބެހޭ މައުލޫމާތު ސަފުހާ.