بنکەی زانیاری: شەفرەسازی دژە کوانتەم

ڕاپۆرتی سپیی تەکنیکی Nymchat

ڕێککەوتن لەسەر کلیلی دوای کوانتەم لە Nymchat

دابەشکردنی کلیلەکانی گشتی ML-KEM-768 لە ڕێگەی Nostrەوە بەبێ کتێبخانە یان تۆمار، و بەکارھێنانی نهێنییەک بۆ دروستکردنی ئەوان کە هیچ بەهاییەکی گشتی ئاشکرای ناکات.

وەشان ١.٠ ئابی ٢٠٢٦ بۆ Nymchat 3.74+ دەبێت

زیادکردنی گۆڕینەوەی کلیلی پاش-کوانتەم بۆ پەیامبەرێک زۆربەی کات کێشەیەکی کرێپتۆگرافی نییە. بنەما سەرەکییەکان ستانداردکراون و کتێبخانەکان هەن. بەشە سەختەکە ئەوەیە کە هەموو بەشداربووێک ئێستا پێویستی بە دووەم کلیلی گشتی، و تۆڕێکی نا-ناوەندی شوێنێکی ڕوون نییە بۆ دانیان. ئەم توێژینەوەیە باس لەوە دەکات چۆن Nymchat وەڵامی ئەوە دەداتەوە — دووەم کلید لە کوێوە دێت، چۆن دەگاتە ئەو کەسانەی پێویستی پێیە، و ڕێگە پێ بە ڕووکارەکە دەدرێت لەبارەی ئەنجامەکەوە چی بڵێت — و لە بەشی کۆتاییدا، ئەو ئەنجامە لە چییەوە پارێزگاری ناکات.

1کێشەکە

نامە تایبەتەکانی Nostr بە ... کۆدکراونەتەوە NIP-44, کە دوو نیوەی جیاکراوەی هەیە. ئەو نیوەیەی کە دەقی ڕەسەنەکە تێکەڵ دەکات — ChaCha20 لەگەڵ تاگی HMAC-SHA256، کە لە ڕێگەی... HKDF (RFC 5869) — بە شێوەیەکی بەرچاو لەلایەن کۆمپیوتەرێکی کوانتەمەوە هەڕەشەی لێ ناکرێت؛ ئەلبگۆریتمی گروڤەر خێراکردنێکی ڕەگژەی (square-root) دەکات بەرامبەر کلیلێکی هاوسەنگ، و ٢٥٦ bit دەتوانێت ئەوە هەڵبگرێت. نیوەیەکە کە ڕەزامەند دەبێت لەسەر کلیلەکە elliptic-curve Diffie-Hellman لەسەر secp256k1, و ئەلگۆریتمی شور (Shor) بە تەواوی کێشەی لۆگاریتمی جیاواز (discrete logarithm) چارەسەر دەکات. دەرهێنانی یەک کلیلێکی تایبەت لە ڕێگەی بەرامبەرەکەی گشتییەوە، بە شێوەیەکی دوایین هەموو نهێنییە هاوبەشەکانی ئەو کلیلە کە بەرهەمی هێناوە ئاشکرا دەکات.

مەترسییەکە کە ئەمە دروست دەکات، تا کاتی دروستبوونی ئامێرێکی وەک ئەوە دوا نەکەوێتەوە. دوژمنێک کە توانای خەزنکردنی هەبێت، دەتوانێت نووسراوە کۆدکراوەکان (ciphertext) ئەمڕۆ تۆمار بکات و هەر کاتێک توانای دیکۆدکردنی هەبوو، دەیکاتەوە. هەر شتێک کە ئێستا بنێردرێت و لەو کاتەدا هێشتا گرنگ بێت، پێشتر ئاسایشەکەی لەدەستدراوە. ئەمە ئەو هێرشە دیاریکراوەیەی کە گۆڕینەوەی کلیلی دوای کوانتەم (post-quantum key exchange) تێکدەدات، و ئەمەش هۆکارەکەیە کە کارەکە ناتوانێت چاوەڕێ بکات تا ئەو ئامێرە دروست بکرێت.

1.1 ئەو پرسیارەی ئەم توێژینەوەیە وەڵامی دەداتەوە

ڕێگای چارەسەرکردنەکە بە باشی لەدەستکراوە: کارپێکردنی میکانیزمی گواستنەوەی کلیل (key encapsulation mechanism) پاش-کوانتەم لەگەڵ گۆڕینەوەی کلاسیکیدا، بە جۆرێک هێرشبەر دەبێت هەردووکی شکێنێت بۆ ئەوەی بتوانێت هیچ شتێک بخوێنێتەوە. Nymchat بەکارهێنانی ML-KEM-768 دەکات (FIPS 203). ئەوە دەستبەجێ کێشەیەکی دابەشکردن دروست دەکات:

پرسیارەکە

بۆ ئەوەی ئەمڕۆ نامەیەک بۆ ئالیس بنێریت، پێویستت بە یەک شتە: npubەکەی. ئەگەر گۆڕانەوەیەکی پۆست-کوانتەم (post-quantum) زیاد بکەیت، پێویستت بە دووەم شتێک دەبێت — کلیلە گشتییەکەی ML-KEM. ئەو کلیلە لە کوێ جێگیر بووە، و چۆن دەستت پێ دەگات پێش ئەوەی بتوانیت هەر شتێک بۆ بنێریت؟

npubێکی خۆی لەخۆ دەگرێت. دەتوانیت لەسەر کاغەز بنووسیت، بە دەنگەوە بیخوێنیتەوە، یان لە شاشەیەکەوە سکانی بکەیت، و ئەوە تەنهاوەکەیە کە هەر کەسێک پێویستی پێیەتی بۆ ئەوەی بۆ تۆ کۆدسازی بکات. کلیلی گشتیی ML-KEM-768 بریتییە لە ١,١٨٤ بایتی. ناتوانرێت بە دەنگەوە بیخوێنرێتەوە، لە ناو ناوی بەکارهێنەردا ناچێت، و شایەنی ئەوە نییە لە ناو کۆدێکی QR-دا بێت لە تەنیشت ناسنامەیەک کە تەنها ٣٢ بایتییە.

قەبارەکە بەشە ئاسانەکەیە. بەشە قورسترەکە ئەوەیە کە کلیلێکی دووەم سێ کێشەی جیاواز دەهێنێت، و بەشەکانی تری ئەم توێژینەوەیە زۆربەی کات وەڵامی ئەوانەن:

2سنووردارکانی دیزاین

چوار سنووردارکەرەوە شێوەی وەڵامەکەیان دا، و ئەوان زۆربەی دیزاینە دیارەکان لادەبەن پێش ئەوەی هیچ کۆدێک بنوسرێت.

  1. تا کەمترین نهێنی کە دەکرێت. بەکارهێنەرانی Nostr پێشتر تەنها یەک نهێنی دەبەن، کە ئەویش nsecـە. هەر نهێنییەکی زیادە ڕێگەیەکی ترییە بۆ لەدەستدانی مێژوویەکەت، و ئەو کەسەی دەزانێت چۆن nsecـێک کۆگای بکات، نازانێت چۆن هیچ شتێکی دیکە کۆگا بکات. بەشی ٣.١ نیشانی دەدات کە ئەمە بە شێوەیەکی ڕاستەوخۆ ناڕەتدێتەوە — کلیلییەکی پۆست-کوانتەم (post-quantum) کە لە nsecـەوە دەهێنرێتەوە هیچ پاراستنێکی پۆست-کوانتەم پێشکەش ناکات — بۆیە دیزاینەکە تەنها یەک نهێنی بەکار دەهێنێت و زیاتر نییە: تەنها پارچەیەک لە کلیل، کە جارێک بۆ هەر ناسنامەیەک دروست دەکرێت، بە هەمان شێوەی nsec و لە هەمان شوێن دەردەکەوێت، بە جۆرێک هەر کەسێک بزانێت چۆن یەکێکیان دەپارێزێت، بزانێت چۆن ئەوی تریشی دەپارێزێت. بەشی ١٠.١ ڕاستگۆیە لەسەر ئەوەی کە ئەوە هێشتا چی تێدەچێت.
  2. هیچ دەسەڵاتێک نییە. هیچ سێرڤەرێک نییە کە بتوان بە متمانە پێی بکرێت بڵێت کام کلیل بۆ کێیە. هەر سێرڤەرێکی وا دەبێتە ئەو خاڵەی کە لە ڕێگەیەوە نامەکان دەکرێت ئاڕاستە بکرێن.
  3. چەند ئامێرێک، یەک ناسنامە. ناسنامەیەکی Nostr بە گشتی بەکاردێت لە چەند کلاینتێکەوە بە یەکجار. هەر کەرەستەیەکی کلیلی کە هەبێت دەبێت لە کۆتاییدا لە هەموویاندا یەکسان بێت، و ئەو ڕێگایانەی کە دەینگوازنە ئەوێ نابێت خۆیان لەلایەن ئەو دوژمنەوە خوێندرابنەوە کە تایبەتمەندییەکە بەرگری لە دژی دەکات.
  4. هیچ دانپێدانانێک نییە هەر ئاڵوگۆڕێکی ناوبەری بۆ پرسیاری "کامی شێوازەکانی کۆدکردن پشتگیری دەکەیت؟" ڕووەکێکە کە هێرشبەر دەتوانێت بەکاری بهێنێت بۆ ئەوەی ناچار بکات بژاردە لاوازترەکە بەکاربهێنرێت. پێکهاتەکە نابێت هیچ شتێکی تێدا بێت کە ڕێگە بدات ئاستەکە دابەزێنرێت.

3نهێنییەکی ڕەگی سەربەخۆ

بڕیاری بنچینەیی ئەوەیە کە کلیلەکەی دەکاپسولکردنی (decapsulation) 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 نیشان دەدرێت لە شاشەی ناسنامە لە ڕێگەی هەمان کارلێکی دیاریکردنەوە، بە هەمان کۆنترۆڵ دە کۆپێکرێت، هەرگیز تۆمار ناکرێت و هەرگیز بە شێوەیەکی ڕوون بۆ هیچ شوێنێک نەنێردرێت. ئەوە وشەی تێپەڕ نییە و ناوەڕۆکی چوونەژوورەوە نییە. ئەوە کەرەستەی کلیلە کە بەکارهێنەر دەتوانێت پاشەکەوتی بکات، ڕێک وەک nsec.

خەملەکە بە ئەنقەست بە جیاوازی دۆمین جیاکراوەتەوە، بۆ ئەوەی هیچ نهێنییەکی تر نەتوانێت هەمان جووت کلیل بەدەست بهێنێت. ئەو epoch ژمارەرەکە سوڕانەوە دەڕوات (بەشی ٩).

3.1 بۆچی ناتوانرێت کلیلەکە لە کلیلە ناسنامەییەکە وەرگیرێت

دیزاینە ڕوونەکە بریتییە لە چاندنی جووتەکەی کلیلەکە لە ڕێگەی ئەو نهێنییەی کە بەکارهێنەرەکە پێشتر هەیەتی:

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

بە چوار هۆکارەوە سەرنجڕاکێشە، کە هەموویان ڕاستین: هیچ شتێکی نوێ نییە بۆ پشتیوانی کردن، چونکە nsec خۆی پێشتر پشتیوانە؛ هەموو ئامێرێک بە شێوەی بنیاتنراو ڕێکدەکەون، بەبێ ئەوەی هیچ پرۆتۆکۆڵێکی هاوئاهەنگی هەبێت کە تێک بچێت؛ یەک ڕاگەیاندنی گۆڕانکاریی گونجاو بۆ هەر ناسنامەیەک کە بە ڕوونی ڕاستە، چونکە ئامێرەکان ناتوانن لەسەر کلیلەکە ناڕاستەوخۆ بن؛ و کلیلەکە پێش ئەوەی بڵاوبکرێتەوە بوونی هەیە، بۆ ئەوەی کلاینت بتوانێت لە یەکەم جار بەکارھێناندا شتێک بۆ خۆی داخ بکات.

هەموو ئەو چوار سوودانە بە یەک هۆکارەوە بێسوودن. ئەلگۆریتمی Shor کە لە دژی npubێکی بڵاوکراوە جێبەجێ دەکرێت، nsec دەداتە دەست. بەدەستهێنانی سەرچاوەکە (seed derivation) ئەلگۆریتمێکی گشتییە لەسەر nsec. بۆیە ئەو هێرشبەرەی کە نیوەی کلاسیکی دەشکێنێت، نیوەی پۆست-کوانتەمیش دووبارە دروست دەکاتەوە بە بەکارهێنانی هەمان HKDF کە هەموو کەسەکانی تر بەکاری دەهێنن. بەرامبەر تاکتیکی 'ئێستا کۆکەرەوە-دوایە درۆکێنەوە' (harvest-now-decrypt-later) — کە ئەو یەکەم هەڕەشەیەیە ئەم تایبەتمەندییە بۆ ڕێگریکردن لە دروست بوونی — کلیلێک کە بەم شێوەیە بەدەست هاتووە هیچ زیادە بکاتەوە.

ئەو یاسایەی کە هەموو شتێک پەیڕەوی دەکات.

کلیلی decapsulationی ML-KEM دەبێت لە ئینترۆپییەکەوە بێت کە نە لە nsec دەستکەوت بکات و نە هیچ کاتێک لە ژێر کۆدکردنەوەی تەنها کلاسیکییەوە بنێردرێت.

بەندی دووەمی ئەو یاسەیە هەمان کارەکە ئەنجام دەدات وەک ئەوەی یەکەم. نهێنییەکی بە شێوەیەکی سەربەخۆ دروستکراو کە دواتر لەناو نامەیەکی ئاسایی NIP-44 لە نێوان ئامێرەکانی بەکارهێنەردا هاوکێشە (synchronize) دەکرێت، هەمان شکستی هەیە بەڵام بە هەنگاوی زیاتر: هێرشبەرێک ئەو نامەیە ئەمڕۆ تۆمار دەکات و دواتر کلیلی کلاسیکییەکەی دەست دەکەوێت، و بنەڕاتەکە (root) دەڕووخێت. هەر بۆیە ڕێگاکانەی لە بەشی داهاتوودا هەن بەو شێوەیەی کە هەن، و بۆ ئەوەیە کە هیچ کام لەوانە "بەنێرە بۆ ئامێرەکەی تری خۆت" نییە.

3.2 گەیاندنی ڕوت بۆ ئامێرەکانی تری بەکارهێنەر

مەرجی ٣ی بەشی ٢ — ناسنامەیەکی تاک، چەند ئامێرێکی جیاواز — لێرەدا ناتوانرێت لە ڕێگەی ژمارەسازییەوە جێبەجێ بکرێت، چونکە خاڵی سەرەکی ئەوەیە کە کلیلەکە فەنگشنەکەی هیچ شتێک نییە کە ئامێرەکان پێشتر هاوبەشی لەگەڵدا بکەن. لەبری ئەوە دەبێت لە ڕێگەی گواستنەوەوە جێبەجێ بکرێت، و تەنها یەک ڕێگا هەیە: بەکارهێنەرەکە دەجوڵێنێت... nympq1… خۆیان کۆد دەکەن.

ڕەگەکە بەم شێوەیە نیشان دەدرێت nympq1… لە تەنیشت nsec، و ئامێرێکی دووەم وەک ئەوەی لە هەمان پانێلەکەدا دانیابێت وەری دەگرێت. ئەوە تەواوی میکانیزمەکەیە. ئامێرێک کە کۆدەکەی پێ نەدراوە ناتوانێت بەشداری بکات، کە لە بەشی ٤.٢دا باس کراوە.

گواستنەوەی دەستی بنیادێکی بە ئەنقەستە لەبری هەنگاوێکی سەرەتایی. یاساکەی ناو بەشی ٣.١ دەڵێت کە ڕەگەکە هەرگیز نابێت لەژێر تەشفینکردنی تەنها کلاسیکییەوە بگوازرێتەوە، و هەر میکانیزمێک کە ئەمە بکاتە ئۆتۆماتیکی — وەک هاوکێشاندنی لە ڕێگەی ڕێڵێیەوە یان بەستنەوەی بە کلیلە ناسنامەییەکەوە — ڕێک لەوە پێچەوانەیە. ئەو هەنگاوەی بەکارهێنەرەکە ئەنجامی دەدات، هۆکارەکە بۆ ئەوەی پاراستنەکە ڕاستەقینە بێت.

شێوازەکە شوێن بۆ ڕێگەیەکی دەلفێنراو دەهێڵێت: تۆمارێک ڕەنگە لیستێک لە دەلفێنراوەکان هەڵبگرێت، کە هەر یەکێکیان پارچە داتایەکی (blob) AEAD بن لە ژێر کلیلێک کە بەکارهێنەرەکە بتوانێت لە ئامێرێکی تردا دووبارە دروست بکاتەوە — بۆ نموونە، دەرەنجامی PRFی passkey. تا ئێستا هیچ شتێک بەو شێوەیە نەنێردراوە، و تا کاتێک شتێک بەو شێوەیە نەدرێت، ئەوا... nympq1… کۆدەکە بریتییە لە تەنیا ڕێگایە بۆ تێپەڕین. بەشی ١٠.١ دەخاتە ڕوو کە ئەوە چەند تێچوو دەکات.

تۆمارەکە خۆی لە ناو بەشی ڕێکخستنەکانی خۆیدا دەژێت، nymchat-pq-root، و وەک کاتۆگۆرییەکانی تر هاهەنگ دەکات. تەنانەت ئەگەر هیچ وڕاپێکیش نەبێت، کارێکی پێویست ئەنجام دەدات: بوونی ئەو ڕێگەیەکە کە ئامێرێکی دووەم تێدەگات ئەم ناسنامەیە پێشتر ڕەگێکی هەیە، ئەمەش ڕێگری دەکات لەوەی ڕەگێکی ڕکابەر دروست بکات (بەشی ٣.٣).

تێبینی دیزاین: ئەو یەک کاتێگۆرییەی کە ناتوانێت کلیلەکەی نوێ بەکاربهێنێت

ئەو nymchat-pq-root پۆلێنەکە دەبێت نەخێر بە کلیلی ML-KEM کە لە ڕەگەوە وەرگیراوە کۆد بکرێت. ئەو ڕیزە تەنها کۆپی ڕەگەکە هەڵدەگرێت، بۆیە مۆرکردنی لەژێر کلیلێکدا کە لە ڕەگەوە وەرگیراوە، وەک قفڵێک وایە کە کلیڵەکەی لە ناو شەکەستەکەدا بێت: هیچ ئامێرێک ناتوانێت هەرگیز بیکاتەوە، تەنانەت ئەو ئامێرەی کە نووسیویەتی. بە شێوازی کلاسیکی مۆر دەکرێت — NIP-44 بۆ خۆی — ئەگەر نا هیچ مۆر ناکرێت. ئەمە ئەو تەنیا شوێنەیە کە دیزاینەکە پاراستنی تەنها کلاسیکی قبوڵ دەکات، و توانای ئەوەی هەیە: ئەو ڕیزە ئەمڕۆ هیچ ڕەگێکی تێدا نییە، تەنها لەوە تێدەگات کە ڕەگێک هەیە.

هەموو پۆلێنەکانی تری ڕێکخستن دەتوانن و پێویستە کلیلی لە ڕەگەوە هێنراو بەکاربهێنن. ئەمە تەنها استثناکەیە، و ئەمە استثنایەکە سەبارەت بە خولیبوونەوە نەک سەبارەت بە بەهێزی.

3.3 دروستکردن و پەیڕەوکردن

لە کاتی دەستپێکردنەوەدا، بە هەڵگرتنی ناسنامەیەکی بەردەوام، کڕیارەکە بەم ڕیزبەندییە کار دەکات:

  1. بگەڕێ بۆ دانەیەکی هەبوو nymchat-pq-root تۆمار.
  2. تۆمارێک دۆزرایەوە، و ئەم ئامێرە دەتوانێت ڤەکڵێتەوە — پەیڕەوی بکە و ڕایبگەیەنە ئەم ناسنامەیە وەک توانای پۆست-کوانتەم.
  3. تۆمارێک دۆزراوەتەوە، و ئەم ئامێرە ناتوانێت بیکەرێتەوە. — ڕەگێکی نوێ دروست مەکە، و هیچ ڕاگەیەندراوێک بە هیچ شێوەیەک بڵاو مەکە. داوا لە بەکارهێنەر بکە ئەم ئامێرە بەستێتەوە لە ڕێگەی داخڵکردنی nympq1… کۆدێک لە ئامێرێکەوە کە پێشتر هەیەتی.
  4. هیچ تۆمارێک نییە — ڕەگێک دروست بکە، تۆمارەکە بڵاو بکەوە، ڕایبگەیەنە، و پیشانی بدە nympq1… کۆد بۆ بەکارهێنەرەکە جارێک بۆ ئەوەی بتوانێت پاشەکەوتی بکات.

هەنگاوی سێیەم ئەو هەنگاوەیە کە هەڵەکردن تێیدا ئاسانە، و ئەمەش هۆکارەکە کە ڕیزبەندییەکە نووسراوە لەبری ئەوەی ڕادەستی هەر جێبەجێکردنێک بکرێت. دوو ئامێر کە هەر یەکێکیان بڕیار بدات ڕەگێک دروست بکات، دوو ڕەگی سەربەخۆ لەژێر یەک ناسنامەدا بەرهەم دەهێنن، و ئەوە ئەو شکسته کە ئەم ڕیزبەندییە هەیە بۆ ڕێگری لەوە بکات.

4ڕاگەیاندنی تواناکان

نیوەی گشتیی جووت کلیلە بەدەستهاتووەکە وەک ناونیشانێک بڵاو دەکرێتەوە NIP-01 ڕووداو — جۆر ٣٠٠٧٨، نیشانەکراو 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) هەڵدەگرێت، بۆیە دووبارە بڵاوکردنەوە لە شوێنی ڕاگەیاندنەکەی پێشوو جێگەی دەگرێتەوە. هەر ناسنامەیەک بۆیە تەنها یەک تۆمارەی ئێستا هەیە، ئەمەش وادەکات "گەڕان بەدوای کلیلی ئالیسدا" بریتی بێت لە هێنانی زانیارییەکی یەکدانە و بێگومان، لەبری لیستێک کە پێویستی بە لێکدانەوە بێت.

واژۆکە گرێدانەکەیە. ڕووداوەکە لەلایەن کلیلە ناسنامەییەکەوە واژۆ کراوە، بۆیە ئەو بانگەوازەی "ئەم کلیلە ML-KEMـە هی ئەم npubـەیە" ڕێک بە هەمان هێزی npubەکەی خۆیەوەیە. جێگەیگرتنی کلیلێکی encapsulationـی جیاواز پێویستی بە دروستکردنی واژۆیەکی ساختەی secp256k1 هەیە. هێرشبەرێک کە بتوانێت ئەوە بکات، پێویستی بەوە نییە خەمی KEM بکات.

ڕاگەیاندنەکان بەسەردهێن. هەفتە ڕۆژ NIP-40 بەسەرچوون، کە هەموو ٢٤ کاتژمێرێک دووبارە بڵاو دەکرێتەوە، تۆمارەکە وەک ڕاگەیاندنێک دەهێڵێتەوە دەربارەی کڕیارێک کە هێشتا بەردەوامە لەبری ئەوەی کە پێشتر بووە. ڕەگەکە خۆی هەرگیز بەسەر ناچێت؛ تەنها ئەو داواکارییەی لەسەری دروستکراوە بەسەر دەچێت.

ڕاگەیاندنێکی ڕاگەڕاو بە هەمان شێوە دەخوێنرێتەوە وەک ئەوەی کە هەرگیز کلیلێکی نەبووبێت: هاوپێیان NIP-44 ئاسایی دەنێرن، کە هەموو چوونەژوورەوەیەکی (login) دەتوانێت بیخوێنێتەوە، و کلاینتەکە لە گواستنەوەی دوای کوانتەمدا (post-quantum exchange) لە پەیوەندی داهاتوودا دەست پێ دەکاتەوە کاتێک دووبارە بڵاوی دەکاتەوە. بۆیە بێدەنگبوون بۆ ماوەی زیاتر لە هەفتەیەک، تەنها پاراستنی ئەو نامانەی لە کاتی بۆشاییەکەدا نێردراون زیان پێ دەگەیەنێت — ئەوان بە شێوەیەکی کلاسیک کۆدکراون لەبری ئەوەی بەرگری کوانتەمییان هەبێت — و هیچ زیانێکی تری نییە. گەیاندنی نامەکان کاریگەری لەسەر نییە، هیچ شتێک کە پێشتر وەرگیراوە ناخوێندرێتەوە، و لە کاتی گەڕانەوەشەوە هیچ کارێکی پێویست ناکات.

ئەو ناهاوسەنگییە هۆکاری بەسەرچوونەکەیە نەک ئەنجامێکی ڕێکەوت. بەبێ یەکێک، تۆمارێک تەمەنی لە کلیلەکە زیاتر دەبێت کە ئاماژەی پێ دەکات: ئامێرێک کە پاک کراوێتەوە، ڕێکخستنەکانی گۆڕدراێتەوە، یان ڕەگی گۆڕدراێتەوە، ڕێنمایییەکی بەردەوام بەجێدەهێڵێت بۆ بەستنەوە بە کلیلێک کە کەس چیتر هەڵی نادات، و ئەو نامانەی کە لەژێریدا دەناندرێن ون دەبن بەبێ هیچ هەڵەیەک لە هەردوو لایەنەکەدا. حەوت ڕۆژ سنووری ئەو کاتە دەخات، و ڕێگە بە گەیاندەرەکان دەدات خۆیان تۆمارەکە دابڕێژن لەبری ئەوەی پشت بە کڕیاران ببەستن بۆ ئەوەی تێبینی بکەن.

ناوی کێڵەی سەرەکی فۆرماتەکەی دیاری دەکات. کێڵگەکە بریتییە لە pk2, و ئەو ژمارەیە بەشێکە لە گرێبەستەکە نەک تەنها بۆ ڕازاندنەوە: ئەوە پێناسی شێوازی ناوەڕۆکی (payload) دەکات کە کلیلەکە دەکرێت لەگەڵیدا بەکاربهێنرێت. خوێنەرێک کە ئەو کێڵەیە بناسێتەوە، دەگاتە ئەوەی کە "کلاینتی Nymchat، کلیلێکی پۆست-کوانتەم نییە" و NIP-44 ئاسایی دەنێرێت، کە هەموو چوونەژوورەوەکانی (login) دەتوانن بیخوێننەوە. ئەمە ئاراستەی درستی شکستە، و شایەنی ئەوەیە وەک ڕێسەیەک ئاماژەی پێ بکرێت کە ژمارەی شێوازەکە بۆ جێبەجێکردنی هەیه: داواکردنی توانایەک کە بناسراو نەبێت دەبێت تەنها پاراستن بخەینە مەترسییەوە، هەرگیز نەگەیاندنی نامەکە نەک. کلیلێک کە هاوبەشێک نەتوانێت بەکاری بهێنێت خراپترە لەوەی هیچ کلیلێک نەبێت، چونکە ئەو نامەیەی دروستی دەکات بەبێ هیچ هەڵەیەک لە هەر دوو لایەنەکەدا ون دەبێت.

٤.١ بێبوون مانادارە، و سێ-بەهاوە

وردەکارییەکی ورد بەڵام گرنگ: ڕاگەیاندنەکە لەلایەن هەموو کلاینتێکی Nymchatـەوە بڵاو دەکرێتەوە، نەک تەنها ئەوانەی توانای پۆست-کوانتەمیان هەیە، و بواری کلیلەکە هەڵبژاردنییە. ئەمەش سێ دۆخی جیاکەرەوە بەرهەم دەهێنێت لەبری دوو:

تێبینی کراوەواتەڕەفتار بنێرە
ڕاگەیاندنێک لەگەڵ کلیلێک Nymchat، توانای دوای کوانتەمی هەیە هاوکۆڵ
ڕاگەیاندن، هیچ کلیلێکی نییە Nymchat، تەنها کلاسیکی — پۆست-کوانتەم ناگیرێتەوە، یان ئامێرێک کە تا ئێستا بە ڕەگی ناسنامەکەوە بەستراوەتەوە نییە. کلاسیکی NIP-17
هیچ ڕاگەیاندنێک نییە کلاینتێکی نەناسراو. ڕەنگە هەر بەکارهێنەرێکی Nostr یان Bitchat بێت کلاسیک، پڵەس وەرپێکی گونجاندن

یەککردنی ڕیزی سێیەم لەگەڵ ڕیزی چوارەم زیانێکی ڕاستەقینە دەبێت. ڕاگەیاندنێکی بێ کلیل بریتییە لە لێدوانێکی واژۆکراو کە دەیسەلمێنێت بنێرەرەکە Nymchat بەڕێوە دەبات، ئەمەش ڕێگە بە ڕێڕەوی ناردن دەدات لە چەسپاندنێکی (wrap) پێشبینیکراوی نێوان پرۆتۆکەڵەکاندا بەدوور بکەوێتەوە، کە ئەگەر نەبێت ناچار دەبوو بۆ هەر کەسێک کە نەتوانێت ناسنامەی بکات، ئەو چەسپاندنەی بۆ بکات.

4.2 ئامێرێک کە ناتوانێت ڕەگەکە بکاتەوە بێدەنگ دەمێنێتەوە

ڕاگەیاندنەکە دەتوانرێت بگۆڕدرێت: یەک ڕووداو بۆ هەر ناسنامەیەک، کۆتا نووسین سەرکەوتنیەتی. ئەوەیە کە دیزاینی تاقە تۆمارە کارپێدەکات، و هەر ئەوەیە کە ئامێرێکی نەبەستراو مەترسیدار دەکات ئەگەر بڵاوی بکاتەوە. ئامێرێک کە کلیلییەک ڕابگەیاندبێت کە بۆ خۆی دروست کردووە، تۆمارە ڕاستەکەی تێکدەدات و هەموو هاوتاکان بەرەو ئەوە دەبات کە بە کلیلییەک کۆد بکەنەوە کە ئامێرەکانی تر ناتوانن بیکەنەوە.

کەواتە ئامێرێک کە دەزانێت ڕەگێک (root) هەیە بەڵام ناتوانێت بیکاتەوە، هیچ ڕاگەیەندەرێکی بڵاو ناکاتەوە. تێک نەچووە و ڕێگەی لە ئەپڵیکەیشنەکە نەگرتووە: هێشتا هەموو ئەو نامانەی دەخوێنێتەوە کە کلیلەکانی بۆ هەیە و بە شێوەی کلاسیک دەینێرێت، لە کاتێکدا داوا لە بەکارهێنەرەکە دەکات کە پێکەوەی ببەستێتەوە. بێدەنگی ڕەفتارێکی دروستە بۆ ئامێرێک کە ناتوانێت لەناوی ناسنامەوە قسە بکات.

5دۆزینەوە و بڕیاری ناردن

کلاینتەکان کلیلەکانی هاوتاکانیان بە دوو شێوە دەزانن. ئامادەکردنێکی بەردەوام ئەو کەسانە دەگرێتەوە کە بەکارهێنەر ڕاستەوخۆ لەگەڵیان پەیوەندی هەیە — گفتوگۆ کراوەکان و ئەندامانی گروپ — بەمەش ڕاگەیاندنەکانیان وەک ڕووداوی ئاسایی دەگات. بۆ هاوتاکێک کە بۆ یەکەم جار دەبینرێت، پرسێارێکی یەکجارەیی لە کاتی ناردندا کار دەکات، کە سنووری کاتی لە ٢.٥ چرکەیە؛ ئەگەر چارەسەر نەکرێت، نامەکە بە شێوازی کلاسیک دەڕوات، کە ئەو ڕەفتارەیە کە پێش زیادکردنی پۆست-کوانتەم هەبووە، نەک وەک شێوازێکی نوێی شکان.

ئەنجامێکی نەرێنی بۆ دە خولەک کۆدەکرێتەوە لەبری ئەوەی بۆ هەتاهەتایی بێت. بەکارهێنەرێک کە ئامێرێکی نوێ دەبەستێتەوە، یان لە چوونەژوورەوە لە ڕێگەی پاشکۆی وێبگەڕەوە دەچێت بۆ کلیلێکی ناوخۆیی، لە ناوەڕاستی گفتوگۆدا دەبێتە خاوەن توانای پۆست-کوانتەم، و ئەگەر وەڵامێکی "نەخێر" بە هەمیشەیی کۆکراوەتەوە، ئەوا دەیکات لەسەر کۆدکردنی کلاسیک بمێننەوە تا کۆتایی ڕاگەیاندنەکە.

5.1 بۆچی هێرشی دۆگرید نییە

بڕیاری ڕێڕەو دەکرێتەوە بۆ یەک پرسیار:

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

هیچ دانوسینێکی تواناکان، هیچ لیستێکی ئەلگۆریتمە پشتگیریکراوەکان، و هیچ بوارێک نییە هاککەر بتوانێت پاکی بکاتەوە بۆ ئەوەی ڕێگایەکی لاوازتر بکاتە ناچار. ڕاگەیاندنەکە ڕادەگریت. بریتیە لە ڕاوژێوتنەکە، و واژۆ کراوە. شێوازی شکستی ڕاگەیاندنێکی لێخوراو یان ڕاگرتوو ئەوەیە کە نامەکە دەبێتە کلاسیک — ئەو بارودۆخەی پێش ئەم تایبەتمەندییە هەبووە — لەبری ئەوەی نامەیەکی تێکەڵ دابەزێنرێت بۆ شتێک کە دەکرێت ساختە بکرێت.

بە پێچەوانەشەوە ڕاستە و گرنگترە: کڕیارێک هایبرید دەنێرێت تەنها کاتێک کلیلێک هەڵدەگرێت، و هەڵگرتنی کلیلەکە بەڵگەیە لەسەر ئەوەی کە وەرگرواوە دەتوانێت دەکۆڤێتەوە. هیچ بارودۆخێک نییە کە پەیامێک بە شێوەی پۆست-کوانتەم بۆ کەسێک بنێردرێت کە نەتوانێت بیخوێنێتەوە.

6بنیاتنانە تێکەڵاوەکە

Nymchat جێگەی NIP-44 ناگرێتەوە. ئەو دەوری دەگرێت. دەقە کۆدکراوەکەی (ciphertext) 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)

هەردوو نهێنییەکە دەبێت دووبارە بهێنرێنەوە بۆ خوێندنەوەی نامەکە: لایەنی دەرەوە تەنها کۆدی (ciphertext) NIP-44 دەداتەوە، و کردنەوەی ئەوە پێویستی بە ECDH کلاسیکی هەیە. بەرگرییەکی کوانتەم کە secp256k1 بشکێنێت، کلیلی ناوەوەی دەستکەوت و هێشتا ڕووبەڕووی ML-KEM دەبێتەوە؛ شکاندنی ML-KEM لایەنی دەرەوە لادەبات و NIP-44 بە جێدەهێڵێت. هەر تێکردنێک شوێنی خۆی بەدەست دەهێنێت:

Encapsulation بە شێوەیەکی نوێ لەسەر هەر نامەیەک ئەنجام دەدرێت. کلیلەکەی ML-KEMی وەرگر درێژخایەنە، بەڵام هەر نامەیەک ciphertextێکی سەربەخۆ لەگەڵ خۆیدا دەبات و لەبەر ئەوەش سەربەخۆییەکی kem_ss. ئەوەیە کە بەدەستهێنانی نۆنسەکە لەبری هەڕەمەکی کردنەوەی، وا دروست دەکات: ChaCha20-Poly1305 بە دووبارەکردنەوەی جووتێکی (کلیل، نونس) دەشکێت، و لێرەدا خودی کلیلەکە بۆ هەر نامەیەک نوێیە، بۆیە هیچ جووتێک ناتوانێت دووبارە ببێتەوە.

6.1 بۆچی چینەکان بە جیا دەمێننەوە

بژاردەی تر ئەوەیە هەردوو نهێنییەکان لەناو یەک کلیلی گفتوگۆدا تێکەڵ بکەیت و ئەوە بدە بە NIP-44:

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

ئەو پێکهاتەیە وەک کرێپتۆگرافیایەک دروستە. یەک کێشەی پێکهاتەیی هەیە: پێویستی بە ecdh_x, هاوکۆردیناتە (x) خاوەکەی ئەنجامی ECDH، وەک ماددەی کلیل — و ئەکسێنشۆنێکی وێبگەڕ (NIP-07) یان واژۆکارێکی دوور (NIP-46) هەرگیز ئەو بەهایە ناداتەوە. ئەو NIP-44 لەسەر ناوی بانگکەرەکە ئەنجام دەدات و دەقێکی کۆدکراوە (ciphertext) دەداتەوە، کە ئەمەش تەواوی مەبەستی پاراستنی کلیلەکەیە لە شوێنێک کە ئەپڵیکەیشنەکە نەتوانێت بگاتێ.

تێکەڵکردنی نهێنییەکان بۆیە هەموو ئەو چوونەژوورەوەیە دەردەکات کە کلیلی ناسنامە لە ناو ساینەرێکدا دەپارێزێت، کە ئەمەش واتە بەکارهێنەرە زۆر وریاکان، و هیچ بڕە کارێک لەسەر بەرهەمهێنانی کلیلەکە ناتوانێت بیگۆڕێت. چیناییکردن وابەستەییەکە لادەبات: NIP-44 بە تەواوی دەمێنێتەوە و لەلایەن هەرچییەکەوە بەرهەم دەهێنرێت کە کلیلی ناسنامەی لایە، لەوانەش ساینەر، لە کاتێکدا نیوەی KEM لە ڕێگەی کۆدی گەڕانەوەوە هەژمار دەکرێت کە کلاینتەکە ڕاستەوخۆی لایە. چوونەژوورەوەکانی ساینەر بەشدارییە ئاساییەکانی پۆست-کوانتەم (post-quantum)ن لە هەردوو ئاراستەدا.

تێچووکە بریتییە لە بەستەری پەیوەندی (bandwidth)، و کەم نییە. دەقی کۆدکراوی (ciphertext) ML-KEM بریتییە لە ١,٠٨٨ بایتی و لەگەڵ هەموو نامەیەکدا دەڕوات، کە بە base64url کۆدکراوە بۆ ١,٤٥١ کاراکتەر؛ AEAD دەرەکییەکە ١٦ بایتی تێگەی (tag) Poly1305 زیاد دەکات و ناوەڕۆکی (payload) NIP-44 کە دەوری دەکات بە ڕادەی یەک دانەی سێیەمی گەورەتر دەکات. نامەیەک کە ٥٠ کاراکتەری بێت لە ١٧٦ بایتییەوە دەگاتە ١,٧١٢، و ئەو نامەیەی ٢,٠٠٠ کاراکتەری لە ٢,٨٢٠ بایتییەوە دەگاتە ٥,٢٣٨. کەمترین بڕ نزیکەی ١.٥ کیلۆبەیتە بۆ هەر نامەیەک بێ ڕەچاودان لەوەی نامەکە چەند کورت بێت، کە ئەمەش نرخی نوێکردنەوەی (encapsulating) هەر جارێکە لەبری بەکارهێنانی دووبارەی نهێنییە هاوبەشەکە.

6.2 پەی لۆدە خۆشەسەرەخەکان

ئەو pq2. پێشگری (prefix) دابەشکردنەکە دەکاتە بە شێوەیەکی هەنگاو بە هەنگاو: خۆی وەسف دەکات، بۆیە کڕیارێک ڕێگای دەرمەکردنەوەی زانیارییەکان بە پشکنینی ناوەڕۆکەکە (payload) هەڵدەبژێرێت، لەبری ئەوەی پشت بە تاگێک ببەستێت یان ئەوە بیر بێتەوە چی هاوڕێیەک (peer) پشتگیری دەکات. خوێنەرێک کە پێشگرییەکە بناسێتەوە، ناتوانێت ناوەڕۆکەکە بکاتەوە لەبری ئەوەی بە هەڵە بیخوێنێتەوە، و ئەو نامانەی پێش ئەوەی هیچ لایەک بتوانێت پاش-کوانتەم (post-quantum) ئەنجام بدات مۆرکراون، وەک NIP-44 ئاسایی دەخوێنرێنەوە بەبێ هیچ گواستنەوەیەک.

ڕەتکردنەوەی ناڕاستەوخۆ

دەستکۆڵکردنی (decapsulation) ML-KEM بە شێوەیەک دیزاین کراوە کە هەرگیز شکستی نەهێڵێت: بە پێدانی ciphertextێکی هەڵە، گۆڕانی Fujisaki-Okamoto لە جیاتی هەڵە، نهێنییەکی pseudo-randomی دیاریکراو (deterministic) دەگەڕێنێتەوە. بۆیە کلیلێکی هەڵە بە هیچ شێوەیەک لە ئاستی KEM دەردەکەوێت — وەک شکستی HMAC لە ناو NIP-44 دەردەکەوێت، کە هەمان ئەو ڕێگەیەیە کە کلیلێکی کلاسیکی هەڵە دەردەکەوێت. بانگکەرەکان (Callers) هەردووکیان بە یەکسانی مامەڵە لەگەڵ دەکەن، بۆیە شکستەکە هیچ ئاماژەیەکی جیاکەرەوەی نییە. ئەمەشە وای کردووە لیستی کاندیدەکانی بەشی ٩.١ کارا بێت: کڕیارەکە (client) هەر کلیلێک بە ڕەوانەیی تاقیبکاتەوە و ڕێگە بە NIP-44 دەدات بڵێت کامەیان ڕاست بووە.

6.3 هەردوو چینەکانی کاغەزی دیاری

A NIP-17 نامەی تایبەت بریتییە لە NIP-59 پاکەتکردنی دیاری (gift wrap): دەنگوباسێکی واژۆنەکراو، بە کلیلی ناسنامەی ناردەرەوە (جۆر ١٣) داخراوە، پاشان لە ژێر کلیلییەکی کاتییەوە (throwaway key) کە بۆ هەر نامەیەک دروست دەکرێت (جۆر ١٠٥٩) پاکەت کراوە. لە کاتی چوونەژوورەوەیەکدا (login) کە ڕاستەوخۆ کلیلی ناسنامە لە خۆیدا هەڵدەگرێت، 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
هەردوو چینەکانی کۆدکردن هیبریدن، هەر یەکێکیان خاڵەتاکردنی سەربەخۆی ML-KEMیان هەیە. چینی دەرەوە بە نهێنییەکی کاتی بەستراوەتەوە، بۆ ئەوەی چەپڵەکە ناردەرەکە ئاشکرا نەکات.

چوونەژوورەوەی واژۆکار تەنها چینەکەی دەرەوە دەستی بکەوێت. مۆرەکە لەلایەن واژۆکارەکەوە وەک NIP-44 ئاسایی بەرهەم دەهێنرێت — ئەپەکە هەرگیز ئەو کلیلە نابینێت کە دروستی دەکات — بۆیە ناتوانرێت لە شوێنی خۆیدا تێکەڵ (hybridize) بکرێت. ئەمە هیچ پاراستنێکی نییە بەرامبەر ئەو هێرشەی باسی لێدەکرێت: مۆرەکە تەنها لە ڕێگەی بەستەرەکەەوە (wrap) دەستگیرسێت، و بەستەرەکەش ئەوەیە کە تۆمارکەرەکە پاشەکەوتی دەکات. هێرشکارێک کە ترافیکی تۆمارکراو لە دەستی دایە، دەبێت سەرەتا ML-KEM شکێنێت پێش ئەوەی مۆرەکە تەنانەت بۆ هێرشکردن دەستکراو بێت.

7پەیامە گروپەکان و ڕووپێوی بەشەکی

پەیامی گروپێک تەنها یەک دەقێکی کۆدکراوە نییە. ئەوە هەمان دەقێکی سەرەتاییە کە بۆ هەموو ئەندامێک دەینێریت، بە جۆرێک کە هەر کۆپییەک لەناو کلیلە ML-KEM ی تایبەت بەو ئەندامەدا gói کرابێت. ئەو ئەندامەی کە کلیلێکی بڵاوکردووەتەوە góiیەکی تێکەڵاو (hybrid wrap) وەردەگرێت؛ ئەوەی کە بڵاوی نەکردووەتەوە góiیەکی کلاسیکی وەردەگرێت.

ئەمە کێشەیەکی ژمێریاری دروست دەکات کە جێبەجێکردنێکی سادە هەڵەی تێدا دەکات. ئەگەر هەشت لە دە ئەندام کۆپییەکی تێکەڵ وەربگرن، پەیامەکە بریتییە لە نەخێر هەشت دەیەمی پارێزراوە. دوژمنێک پێویستی بە یەک کۆپییە کلاسیکییەکی دەقی ڕاستەقینە کە لە هەشت هەموویاندا وەک یەک بێت، بۆیە نامەکە تەنها پارێزراوە ئەگەر هەموو کۆپییە.

Nymchat لەبەر ئەوە ڕێژەی پوشانەوەی هەر نامەیەک لە کاتی بەڵەشکردنەوەدا چاودێری دەکات — ژمارەکە تەنها لە کاتی دروستکردنی پۆشەرەکاندا دەزانرێت — و نیشانەکە ڕاپۆرد دەکات کە "لە ڕووی کوانتەمەوە بەرگری لە ٨ لەسەر ١٠ ئەندام دەکات" لەبری ئەوەی بانگەواز بکات کە نامەکە پارێزراوە. لەو شوێنانەی کە هیچ ژمارەیەک نییە، کە حاڵەتی ئاساییە بۆ... وەرگیراوە پەیامی گرووپ (تەنها ناردەر ژمارەی گەشاندنی پەیامەکە هەژمار دەکات)، ڕووکارەکە باس لە پاراستنی بەشەکەی دەکات نەک پاراستنی تەواو. داواکردنی پاراستنی تەواو تەنها لەسەر بنەمای کۆپیی خۆت، زیادەڕەوی دەبێت لەسەر بارودۆخی گشتی پەیامەکە.

7.1 سپر چی ڕاپۆرد دەکات

پارێزەرەکە ڕاستییەکە دەڵێت دەربارەی نامە، نە لەبارەی ئەو سۆفتوێرەی کە ناردوویەتی:

بڕیارەکە کاتێک تۆمار دەکرێت کە نامەکە مۆربەست دەکرێت، نەک لە ڕێگەی دووبارە هەژمارکردنەوە لەوەی هاوبەشێک دواتر ڕای دەگەیەنێت. دەقی شەفرەیی کە پێشتر هەبووە ناتوانێت پارێزراوی زیاتر بێت لەوەی کە پێشتر بووە، و ئەو ڕووکارەی کە لەسەر بنەمای ڕاگەیاندنێکی نوێ نامە کۆنەکان دووبارە نیشان دەداتەوە، شتێکی هەڵە دەڵێت سەبارەت بە بەیتەکانی سەر ڕیلییەکە.

یاساکانی گرووپەکە لە سەرەوە لەبری ئەوەی ئەمە بگۆڕن، لەسەر ئەمە زیاد دەبن: نامەیەکی گرووپ بە تەواوی پارێزراوە تەنها کاتێک کە کۆپییەکەی هەموو ئەندامان پارێزراو بێت، و نامەیەکی گرووپی وەرگیراو کە ژمارەی ڕووپۆشی نییە، نیشانەی بەشێکی دەدات.

8کۆپییەکان کە بۆ خۆت ئاراستە کراون

چەند شتێک کە کلاینت پاشەکەوت دەکات بە شێوەی کۆدکراو بە ناسنامەی خودی بەکارهێنەرەکەوە بەستراونەتەوە: ڕێکخستنە هاوئاهەنگکراوەکان، لیستی گفتوگۆکان، کلیلی گروپەکان، و ئەرشیڤی نامەکان. ئەمانە زانیاری زیاتر لە بەکارهێنەرەکەوە دەگەیەنن بەوەی زۆربەی نامە تاکەکان، بۆیە ئەگەر بە شێوەیەکی کلاسیکی جێیان بهێڵین، دەبنە لاوازترین بەرهەمی پاشەکەوتکراو، بەبێ گوێدانە ئەوەی خۆی نامەکان چەند بە وردی پارێزراون. ئەوان هەمان شێوازی تێکەڵ بەکاردەهێنن، کە لە کلیلی ڕەگی (root-derived key) خودی بەکارهێنەرەکەدا تێدەگێڕدرێت — بە یەک جیاوازی کە لە بەشی ٣.٢دا باسکراوە، ئەو... nymchat-pq-root خۆی جۆرەکە، کە ناتوانرێت لەژێر کلیلێکدا داخ بکرێت کە تەنها خۆی بتوانێت بەرهەمی بهێنێت.

ئەم بەرهەمانە ئەو شوێنانەن کە دیزاینەکە لێیان گرنگترین ڕۆڵ دەگێڕێت. کۆمەڵە زانیارییەکی ڕێکخستن یان ڕیزێکی ئەرشیڤ بۆ چەندین ساڵ لە شوێنێک دەمێنێتەوە، کە ڕێک وەک ئەو جۆرە شتانەیە کە هێرشبەرێک کە "ئێستا کۆی بکاتەوە و دواتر درکی بکاتەوە" کۆی دەکاتەوە — زۆر زیاتر لە هەر نامەیەکی تاک، کە لای بەکارهێنەر لانی کەم شتێکی کاتییە.

یەک ڕێکار فۆرماتەکە لێرە دەستەوری دەکات لەبری کلیلەکە. کۆپییەکی ئاراستەکراو بۆ خودی خۆت دەبێت بتوانرێت لەلایەن ...ەوە بخوێندرێتەوە. هەموو ئامێرێک لە هەژمارەکەدا، بە جۆرێک هەر ئامێرێک ڕای دەگەیەنێت چی دەتوانێت لەو لیستەی بکاتەوە کە لە ڕاگەیاندنەکەییدا هەیەتی، و هەژمارەکە تەنها ئەوە دەنووسێت کە هەموویان بتوانن بخوێننەوە. نووسینی هەر شتێکی تر دەبێتە هۆی دەرکردنی ئامێرێک لە ڕێکخستنەکانی خۆیەوە — هەمان ئەو شکستی بێدەنگەی کە بەش ٣.٢ بە ڕێگەی تر ڕێگری لێ دەکات، بەڵام لە ئاراستەیەکی جیاوازەوە.

سنووردارکردنێک کە شایەنی باسکردن بێت

ئامێرێک کە ناسنامە دەپارێزێت بەڵام ڕەگ (root) لەگەڵدا نییە، ناتوانێت هیچ شتێک بکاتەوە کە بە کلیلی سەرچاوەگرت لە ڕەگەوە مۆرکراوە بێت، لەوانە ڕێکخستنەکانی خۆی. ئەوە ئەنجامێکی مەبەستدارە، نەک غەفڵەت، و ئەوەش هۆکارە بۆ ئەوەی لە بەشی ٣.٣ دا، ڕێنمایی ئامێرەکە بۆ بەستنەوە (linking) هەیە لەبری دروستکردنی ڕەگێکی نوێ (minting): ڕەگێکی دووەم نابێتە هۆی ئەوەی blobەکە بخوێنرێتەوە، بەڵکو تەنها کەرەستەی کلیلی ناسنامەکە بۆ دوو بەش دەکاتەوە. تاوەکو بەکارهێنەرەکە بەستنەوەی بۆ ناکات، ئامێرەکە بە کارکردن بەردەوام دەبێت — ئەوە دەخوێنێتەوە کە کلیلی بۆ هەیە و بە شێوازی کلاسیک دەینێرێت.

ئامێرێک کە کار لە دروستکراوەیەکی وێبگەڕ (browser extension) یان واژۆکەرێکی دوور (NIP-46) دەکات، هیچ nsecی نییە بۆ ئەوەی لێی بگەڕێتەوە، بەڵام کۆدی گەڕانەوەی لایە، و لەژێر بنیاتەکەی چین چین لە بەشی ٦.١دا، ئەوە تەنهاوە پێویستە بە نیوەی پۆست-کوانتەم: واژۆکەرەکە چینەکەی NIP-44 بە هەمان شێوازی پێشوو بەرهەم دەهێنێت، و کلاینتەکە خۆی کلیل بۆ چینی دەرەکی دەکات. ئەم جۆرە چوونە ناوەوەیە بەشداردارێکی ئاساییە لە هەردوو ئاڕاستەکەدا.

9سوڕانەوە

ئەو epoch هەژمارکەری ناو بەرهەمهێنانەکە ئەوەیە کە سوڕانەوە بەبێ ماددەی نوێی کلیل ئەگەر دەکات. زیادکردنی ئەوە جووت کلیلێکی نوێ لە هەمان ڕەگەوە و ڕاگەیەندراوێکی دووبارە بڵاوکراوەوە بەرهەم دەهێنێت؛ هاوبەشەکان کلیلە نوێیەکە لە تۆمارە گۆڕدراوەکەوە وەردەگرن. بۆیە سوڕانەوەکە داوای ئەوە ناکات بەکارهێنەر هیچ شتێک دووبارە بنووسێتەوە: ڕەگەکە تەنها جارێک بۆ هەر ناسنامەیەک دروست دەکرێت و سەردەمەکە (epoch) سوڕانەوەکە ئەنجام دەدات.

9.1 سەردەمە کۆنەکان دەپارێزرێن، و هیچ شتێک دووبارە شەفرەسەندینەوە بۆ ناکرێتەوە

کاتێک کلیلێک دەگۆڕێت، هیچ شتێک دووبارە نەنوسرێتەوە. کڕیارێک کاندیداکانی هاتنەدەستکردن لە سەردەمی ئێستاوە تا سەردەمی ٣- دروست دەکات، بە جۆرێک نامەیەک کە کەمێک پێش گۆڕانکارییەکە مۆرکراوە، هێشتا بەو جووتە کلیلەی دەکرێتەوە کە لە کاتی ناردنی نامەکەدا کارا بوو.

ئەو پەنجەرەیە ئەوەیە کە گۆڕانکاری بە سەلامەتی ئەنجام دەدات: بەبێ ئەوە، هەر گۆڕانکارییەک هەرچییەک لە پرۆسەی گواستنەوەدابوو لە شوێنی خۆیدا جێدەهێشت. هەر شتێک کە پێشتر داخراوە، بۆ ماوەی بەکارهێنانی ناسنامەکە خوێندنەوەی دەکرێت، چونکە نامەیەک کە بەکارێنەر ناتوانێت دووبارە بیکاتەوە، بە تەواوی خراپترە بۆیان لەو نامەیەی کە پاراستنی ناتوانرێت بە شێوەیەکی دوایین باشتر بکرێت (بەشی ١٠.٥).

10ئەوەی ئەمە لێی پارێزگا ناکات

ئەو توێژینەوەیەی تەنها ئەوە دەڵێت کە دیزاینەکە چی بەدەست دەهێنێت، وەسفی سیستمێک ناکات، هەروەها گەورە کردنەوەی تایبەتمەندییەکی ئەمنیدا لە ڕووخسارییەکدا خراپترە لەوەی نەمرۆترێت. ئەوانی خوارەوە لە دەرەوەی ئەوەن کە ئەم پێکهاتەیە بەرگری لێ دەکات.

10.1 ڕەگەکە دووەم نهێنییە، و لەدەستدانی گەڕاندنەوەی نییە

ئەمە تێچووی ڕاستەقینەی دیزاینەکەیە. ئەو سنووردارکردنەی لە بەشی ٢دا هاتووە کە بەکاربەر دەبێت تەنها یەک شت هەبێت بۆ پاراستن، ناتوانرێت جێبەجێ بکرێت: تەنها nsec ناکەرێتەوە کلیلە پۆست-کوانتەمەکە، چونکە مەبەستی سەرەکی ئەوەیە کە هیچ بەهایەکی گشتی و هیچ نهێنییەکی تر کلیلەکە ئاشکرا ناکات. ئەگەر هیچ ئامێرێک ڕەگ (root) هەڵ نەگرتبێت و هیچ کامیان لە بەستەرەکانی (wraps) بەشی ٣.٢ نەکورێنەوە، ئەو ماددانەی کە بە کلیلە لە ڕەگەوە هاتووە بە کۆڵەکەکراون، ناتوانرێت دووبارە بهێنەرەوە. هیچ escrowیەک نییە و بە ئەنقەست هیچ دەسەڵاتێک نییە کە بتوانێت یەکێکیان هەڵبگرێت.

بە گواستنەوەی دەستی تەنها ڕێگەیەکە، ئەمە لەوە تیژترە لەوەی لە سەرەتاوە دەخوێنرێتەوە. بەکارهێنەرێک کە هەرگیز کۆپی ناکاتەوە nympq1… کۆد لە هەر شوێنێکدا تەنیا یەک کۆپی لەوەی هەیە، لەسەر یەک ئامێر، و لەدەستدانی ئەو ئامێرە بە واتای لەدەستدانی هەموو نامە دوای کوانتەمەکان، کۆمەڵە داتای ڕێکخستنەکان و ڕیزی ئەرشیڤەکان دێت کە بەو ئامێرەوە بەستراونەتەوە. ئەو nsec هاوکار نییە؛ ئەوە ئەو تایبەندییەیە کە تەواوی دیزاینەکە لەسەر ئەوە وەستاوە.

هەر ڕێگایەکی بەستراوەی دواتر زیاد کراو دەبێت هەمان ئاستی ئەو ڕێگایە تێپەڕێت کە بە شێوەی دەستی کراوە. هێرشبەر هێرش دەکاتە سەر هەرزانترین ڕێگەی بەردەست، بۆیە هەر سیستمێک بەو نرخە دەناسرێت کە لاوازترین ڕێگەی گەڕانەوەی هەیە — بۆ نموونە، وشەیەکی نهێنیی لەبیرکراو، هەموو بابەتەکە دادەنێت بەو ئاستەی کە وشەکە لە خۆی دەگەیەنێت، و ئەو ڕیزە بەستراوەیە ڕێک ئەو شتەیە کە هێرشبەرێکی "ئێستا کۆکەرەوە و دواتر درک دەکاتەوە" کۆی دەکاتەوە و لە کاتێکی ئارامدا بە شێوەیەکی ئۆفلاین لەسەر کار دەکات.

10.2 ڕاستکردنەوەی ناسنامە، بە جیا لە نهێنیپارێزی

هەموو واژۆیەک لە Nostr بریتییە لە Schnorr لەسەر secp256k1، و ئەمەش لێرەدا وەک خۆی ماوەتەوە. دوژمنێک کە کۆمپیوتەرێکی کوانتەمی هەبێت، دەتوانێت واژۆکان دروست بکاتەوە و لە کاتی ڕاستەقینەدا خۆی وەک بەکارهێنەرێک پیشان بدات. ئەوەی گۆڕینەوەی کلیلی هاوکات (hybrid key exchange) ڕووبەڕووی دەبێتەوە بریتییە لە "ئێستا کۆکەرەوە، دواتر درک بکە": هێرشبەرێک کە ترافیکەکە ئەمڕۆ تۆمار دەکات، ناتوانێت دواتر بیخوێنێتەوە. ئەوە نامەکە بە شێوەیەک ناکات کە نەتوانرێت دروست بکرێت بەرامبەر بە دوژمنێک کە پێشتر ئەو ئامێرەی لایە. ئەم جیاوازییە بە ئەنقەست لە ئەپڵیکەیشنەکاندا ڕەچاو کراوە — نیشاندەری قفڵەکە ئاگاداری ناسنامەپێدان (authentication) دەکات، پەردەکە ئاگاداری نهێنیبوون (confidentiality) دەکات، و ئەوان نیشانەی جیاوازن چونکە نامەکە دەکرێت یەکێکیان هەبێت بەبێ ئەوەی ئەوی تریان هەبێت.

ئەوە هەروەها سنووردار دەکات ئەوەی ڕاگەیاندنی لە بەشی ٤ دەتوانێت بەڵێن بدات. بەستنەوەی نێوان npub و کلیلی ML-KEM واژۆی secp256k1ە، بۆیە هێرشبەرێک کە بتوانێت ئەوان ساختە بکات، دەتوانێت کلیلی خۆی جێگەیان بگرێتەوە. پاراستنی نهێنی لە بەرامبەر هێرشبەرێکی داهاتوودا وەک ڕاستگۆیی لە بەرامبەر هێرشبەرێکدا نییە.

10.3 مێتاداتا

پاکەتکردنی دیاری ناردووەکە دەشارێتەوە، وەرگر لە پشت یەک p تاگ، جۆرەکە، و کاتی تۆمارکردنی نامە ناوخۆییەکە. ئەمە ئەوە ناپۆشێت کە ڕووداوێک هەیە، یان قەبارەکەی، یان کەی ڕێڵەیەک وەرگرتبێت. شیکردنەوەی ترافیک لە هیچ بەشێکی ئەم دیزاینەدا چارەسەر ناکرێت.

10.4 تۆڕی ئۆفلێین

گواستنەوەی Bluetooth meshی Nymchat پرۆتۆکۆیەکی جیاوازە کە دەستپێکی (handshake) تایبەتی خۆی هەیە، و ئەم کارە بە ڕوو ناگرێتەوە. نامەکان لە ڕێگەی meshـەوە کلاسیکین.

10.5 نامەی پێشتر نێردراوە

دەقە کۆدکراوەکە کە لە کاتێکدا تۆمارکراوە کە هەر لایەک هێشتا کلاسیکی بووە، بە شێوەیەکی هەمیشەیی کلاسیک دەمێنێتەوە. ئەوە پێشتر هەیە و ناتوانرێت دووبارە داخرێتەوە. پاراستن لەو نامەیە دەست پێ دەکات کە هەردوو لایەن کلیلە پۆست-کوانتەمییەکانیان هەبوو، نەک لەو ساتەی کە تایبەتمەندییەکە چالاک کرا.

11بژاردە جێگرەوەکان ڕەچاوکراون

نزیکبوونەوەبۆچی نە؟
کلیلە پۆست-کوانتەمەکە لە کلیلە ناسنامەییەکەوە بەدەستبهێنە ڕەتکراوەتەوە. پرۆسەی دەرهێنانەکە ئەلگۆریتمێکی گشتییە لەسەر nsec، و هێرشبەرێکی کوانتەم nsec لە npubی بڵاوکراوەوە دەردێنێتەوە، بۆیە شکاندنی نیوەی کلاسیکی لەگەڵ خۆی نیوەی پۆست-کوانتەمەکەشی دەسپێرێتەوە. هەموو کێشەکانی دابەشکردنی ئەم توێژینەوەیە چارەسەر کرد و دژی هیچ کەس بەرگری نەکرد. بەشی ٣.١.
ڕەگەکە لە ڕێگەی NIP-44وە بۆ ئامێرەکانی تری بەکارهێنەرەکە بنێرە بە هەمان هۆکار بە جلی جیاواز ڕەتکراوەتەوە. ڕەگێک کە لەژێر کۆدکردنەوەی تەنها کلاسیکیدا گواستراوەتەوە، دەتوانرێت لەلایەن هەر کەسێکەوە دووبارە بهێنرێتەوە کە ئەو نامەیە تۆمار کردبێت و دواتر کلیلەکەی بشکێنێت، کە ئەویش ئەو دوژمنەیە کە ڕەگەکە بۆ ڕێگریکردن لەیەوە دروست کراوە.
جووتێکی کڵِلِّ ML-KEM کە بە جیا لەسەر هەر ئامێرێک دروستکراوە ڕەتکراوەتەوە. ئامێرەکان کلیلەی جیاوازی کردنەوەی دەپی (decapsulation)یان هەبوایە، و یەک ڕاگەیاندنی گۆڕانکاریی بۆ هەر ناسنامەیەک ناتوانێت هەموویان لە خۆدا بگرێتەوە. هاوبەشەکان بە هەر کلیلێک کە دواتر بڵاوکراوەتەوە کۆدی دەکەنەوە (encrypt)، و هەموو ئامێرێکی دیکەییش نەدەتوانێت ئەنجامەکە بخوێنێتەوە. یەک ڕەگ بۆ هەر ناسنامەیەک، کە لە ڕێگەی ڕێڕەوی بەشی ٣.٢ەوە دەجوڵێت، ئەوەیە ڕێگری لەوە دەکات.
ڕووتەکە لەژێر PINێکدا بپێچەرەوە. ڕەتکراوەتەوە. PINێکی چوار ژمارەیی بەرامبەر هێرشبەرێکی ئۆفلاین کە ڕیزی دەپوشێنراوەکەی لەبەردەستدایە، نزیکەی ١٣ بێت. پێشکەشکردنی لەگەڵ دوو ڕێگای ٢٥٦ بێت، بە هەڵە نیشان دەدات کە گرنگی لاوازترین دەپوشێنراو چەندە.
npubەکە فراوان بکە بۆ هەڵگرتنی هەردوو کلیلەکە ١،١٨٤ باýt ناسێنەرێکی گۆڕینەوە نییە، و دەبێتە هۆی تێکچوونی شیکردنەوەی (parsing) هەموو کلاینتەکانی ئێستای Nostr بۆ ئەو ناونیشانەی کە وەک ٣٢ باýt پێناسە کراوە.
خزمەتگوزارییەکی سەرەکیی ڕیزبەندی ئەو دەسەڵاتەی تۆڕەکە بۆ دوورکەوتنەوەی دروست بووە، دووبارە دەگەڕێنێتەوە. هەر کەسێک وەڵامی گەڕانەکە بداتەوە، بڕیار دەدات کێ دەتوانێت نامەکە بخوێنێتەوە.
کلیلەکە بە هەر نامەیەکەوە هاوپێچ بکە هیچ شتێک چارەسەر ناکات: ناردەر پێویستی بە وەرگرەکە کلیلەکە پێش یەکەم نامەکە، کە ڕێک لەو حاڵەیە کە هیچ نامەیەکی پێشتر نییە بۆ هەڵگرتنی.
دانوستانی تواناکان لەناو باندەکەدا ڕووبەرێکی دابەزاندنی ئاست دروست دەکات. ئەو هێرشبەرەی بتوانێت ئاڵامێکی تواناکان لابدات، ڕێگەی کلاسیکی ناچار دەکات.
تەنها پۆست-کوانتەم، بەبێ لایەنی کلاسیک دەیەکانی شیکاری secp256k1 فڕێدەدات لە بەرامبەر بنەمایەکی زۆر گەنجتردا. هاوئێوەیەکی تەنها شک دەخات ئەگەر هەردووک شکست.

12یەکسانیی جێبەجێکردن

Nymchat دوو جێبەجێکردنی سەربەخۆی ئەم بنیاتە دابین دەکات — یەکێک بە JavaScript بۆ ئەپڵیکەیشنی وێب، و یەکێکی تر بە Dart بۆ ئەپڵیکەیشنە مۆبایلەکان، لەوانەش پۆرتێکی ML-KEM-768 کە لە سفرەوە دروستکراوە. بە ئاسایی دوو جێبەجێکردنی هەمان پرێمیتێڤ مەترسییە، بۆیە لە جیاتی ئەوەی متمانە بەوە بکرێت کە ڕێکدەکەون، بە شێوەیەک بەکاردێنرێن کە بەرانبەر یەکتر تاقی بکرێنەوە.

جێبەجێکردنی Dart ML-KEM دژی فەرمییەکە پشتڕاستکراوەتەوە NIST ACVP تاقیکردنەوەکانی وەڵامی ناسراو بۆ ML-KEM-768 (ML-KEM-*-FIPS203٢٥ حاڵەتی دروستکردنی کلیل، ٢٥ حاڵەتی góiکردن (encapsulation) و ١٠ حاڵەتی پاککردنەوەی góiکردن (decapsulation)، وەک کۆمەڵەیەکی تایبەت بە خۆیان کار دەکەن. ئەمانە ئەو ڤێکتۆریانەن کە NIST بڵاوی دەکاتەوە بۆ پشتڕاستکردنەوەی جێبەجێکردنێک، بۆیە ڕابردنیان بەڵگەیە لەسەر ئەوەی کە گواستنەوەکە ڕاستە، نەک تەنها بەڵگەی ئەوەی کە دوو کلاینتەکە لەگەڵ یەکتر ڕێککەوتوون. لەویشەوە، ڕێکخراوێکی هاوبەشی ڤێکتۆری تاقیکردنەوە — وەرگرتنی چڵک (seed derivation)، góiکردن، هەردوو فۆرماتی بارگرکێ (payload)، و پاکەتە تەواوەکان — لە ڕەفرەنسی JavaScriptـەوە دروست دەکرێت و لەلایەن هەردوو کۆمەڵەی تاقیکردنەوەکەوە پشکنین بۆ دەکرێت. نهێنی ڕەگ (root secret) ئەو ڕێکخراوە فراوان دەکات لەبری ئەوەی بگۆڕێت: ڕەگ بۆ چڵک، ڕەگ بۆ جووتکلیل (keypair)، پەنجەنمانی گشتی ڕەگەکە، و کلیلە دەستبەدەراوەکە، nonce و داتای پەیوەندیدارەکانی چینەکەی دەرەوە ڤێکتۆری تایبەتی خۆیانن، بۆیە دوو کلاینتەکە ناتوانن لەسەر ئەوە دژبەیی بکەن کە چی... nympq1… کۆدەکە مەبەست لێی یان پەیوەندی بە ئەو بایتیانەوە هەیە کە نامەکە بە ڕەختکراوە (seal) کراوە. هەر جیاوازییەک لە هەر یەکێک لە جێبەجێکردنەکاندا دەبێتە هۆی شکانی پرۆسەی دروستکردن (build)، لە جیاتی ئەوەی نامەیەک بەرهەم بهێنێت کە کڕیارەکەی تریش نەتوانێت بیکاتەوە.

پەنجەمۆرەکە لەناو ئەمانەدا شایەنی ناوبراوە. ئەوەیە کە جیاوازی لە نێوان "ئەمە ئەو ڕەگەیە کە من هەمە" و "ئەمە ڕەگێکی جیاوازە" بۆ ئامێرەکە ڕوون دەکاتەوە، و کلاینتێک کە نەتوانێت پەنجەمۆری کلاینتێکی تر دووبارە بکاتەوە، تۆمارێکی زۆر باش و دروست وەک ئەوە دەخوێنێتەوە کە هیچ تۆمارێکی نییە — پاشان، بەدوای بەشی ٣.٣دا، ڕەگێکی دووەم دروست دەکات و ناسنامەکە دەکاتە دوو پارچە. بەم هۆکارە ڕێک وەک ڕێگەیەک (vector) بۆ ئەوە.

Nymchatیە کراوە سەرچاوە لەژێر AGPL-3.0. ناوەڕۆکی سەرەکی کریپتۆگرافی کە لێرە وەسف کراوە بریتییە لە js/nym-crypto.js و js/modules/pq.js لە کلاینتی وێبدا، و lib/core/crypto/ لەگەڵ lib/features/identity/pq_registry.dart لە کلاینتە مۆبایلەکاندا.

بۆ ڕوونکردنەوەیەکی کورتتر و نەتەکنیکی، سەیر بکە لاپەڕەی بنکەی زانیاری لەبارەی شەفرەسازی بەرگەیگر لە دژایەتی کوانتەم.