Nymchat تېخنىكى ئاق قەغەزىسى
Nymchat-دىكى كوانتۇمدىن كېيىنكى كىي كەلىشىش تاللاشى
ML-KEM-768 ئاممىۋى تۇچەلىرىنى ھېچقانداق تىزىم ياكى رېجىسترى بولمىغان حالدا Nostr ئارقىلىق يېتكىلەش ۋە ئۇنى ھېچقانداق ئاممىۋى ئۇچۇر ئاشكارى قىلمىغان سىرلىق مەبلەگدىن تەمىنلەش.
مېسېنجەرگە پۆست-كوانتۇم كۈچلىك ئالماشتۇرۇشنى قوشۇش كۆپچەلىكتىن كىپتۇگرافىيا مۇشكىلىقى ئەمەس. پىرىمىتىۋلار ستاندرتلىشىلغان ۋە كىتەپخانىلەر بار. قىيىن قىسمى شۇكى، ھەربىر ئىشتراكچىنىڭ ھازىردا ...گە ئېھتىياجى بار ئىككىنچى ئاممىي تالغا، ۋە مەركەزسىز تەرمىي ئىتنى قېتىرىش ئۈچۈن ئاشكار بىر جايغا ئىگە بولمىغان. بۇ ماقالە Nymchatنىڭ بۇ سۆزگە قانچە جاۋاب بېرىشىنى — ئىكինچى تالغا قانداق كېلىدىگەنلىكى، ئۇنىڭ تاللىغغا مۇھتاج بولغانلارگە قانچە يېتىشلىكى ۋە يۈزلىك (interface) نىتىجىيە ھەققىدە نېمە دېگەنلىگە رۇخساتلىنىدىغىلىقىنى — ۋە ئەڭ ئاخىرقى بۆلەكتە، بۇ نىتىجىنىڭ نېمىنى قوغداپ قالمايدىغىلىقىنى تەپسىلىيläيدۇ.
بۇ بەت قۇلايلىق ئۈچۈن ماشىنا تەرجىمە قىلىنغان. ئىنگلىزچە ئەسلى نۇسخىسى قوللىنىلىدۇ.
1مەسەلە
Nostr خۇسۇسىي خەبارلىرى ... بىلەن شىفىرلانغان. NIP-44, ئۇنىڭ ئېنىقلاشتۇرغىلى بولىدىغان ئىككى يېرى بار. ئاسل مەتنىنى خۇشتۇتۇپ سالىدىغان يېرى — HMAC-SHA256 تاقمى بىلەن ChaCha20، ... ئارقىلىق كېي (key) بىلەن HKDF (RFC 5869) — كوانتتلاش كومپيۇتېرى تەرىپىدىن ئەرزىنلىق تەرەپلىنىپ قالمايدۇ؛ グروۋەر ئەلگورىزمی سىرىمېترىك كېيگە قارشى كىشىك كېرۈش تېزلىقىنى بېرىدۇ، 256 bit بولسا بۇنى ئېقىرىدۇ. ئۇنىڭ يېرىمى مواپۇق كېلىدۇ كالتۇنىڭ ئۈستىدە ئېلېپتتىكا كۆربە دىپى-هيلمان ئۈستىدە. secp256k1, ۋە شور ئەلگورىزمی دىسڪرىت logarithmنى تۇغرىدان-تۇغرىغا چەچىدۇ. ئۇنىڭ پۇبلىك كىلىتىدىن بىر پۇرىۋات كىلىتىنى قايتارۇپ ئېلىش، بۇ كىلىت تاراتقان ھەر قانداق ھەمراك سىرلارنى ئۆتكىلىك جەھەتتىن ئاشكارىلايدۇ.
بۇ ياراتقان ق`]تىرىقۇچىلىق بۇنداق بىر ماشىنا تۇغۇلغۇچە كۈچمەلنەيدۇ. سىلىقلاش ئىگىسى بولغان بىر دۇشمان بۇگۈنكى سىفرالىغان مەلىماتنى يېزىپ ئېلىپ، كەلگۈسىدە مۇمكىنچىلىق تۇغۇلغان ۋاقىتتا ئۇنى يېقىپ تاشلىشى مۇمكىن. ھازىر يەڭىلىق مۇھىم بولغان ھەر قانداق بىر نەرسە، ئالدىن سىلتىرلەپ تۇرىدۇ. بۇ كۋانتتىكىدىن كېيىنكى ئالماشتۇرۇش تېگىشلىك جەپلىگەن مۇبەككەس ھۇجۇم ۋە بۇ ماشىنا تۇغۇلغۇچە كۈتۈپ تۇرىلمەيدىغان ئىشنىڭ سەۋەبى ھもなく.
1.1 بۇ ماقالە چاۋاپ بېرىدىغان سۆئال
تەھسىسلەش چارا yaxshilab tushunulghan: پۇست-كوانتۇم تاللاش ئېچىقىچە mexanizmini كلاسسىكىلىق ئالماشتۇرۇش بىلەن بىرلىكتە ئىگىلەتلىۋەلىش، شۇنداق ھۇجۇم قىلغۇچى خۇبارنى ئېچىش ئۈچۈن ئىككىلىكنىڭ ئىككىلىكىنى دەم بىرلىكتە بۇزۇشى كېرەك. Nymchat ML-KEM-768 ( نى ئىگىلدۈرىدۇ.FIPS 203). بۇ تېزدا تەزۋات ماسسالىسىنى كېلىپ چۈشۈرۈپ قالىدۇ:
بۈگۈن ئAliceگە خەت يازغىلى سىزگە بىر نەرسە كېرەك: ئۇنىڭ npub muchasi. پۇست-قانتىم (post-quantum) ئالماشتۇرۇشنى قوشساڭىز، يەنە ئىككىنچى نەرسە كېرەك — ئۇنىڭ ML-KEM ئاممەلىك تۇكى. بۇ تۇكا قەيدە ۋە ئۇنىڭغا ھېچقان ئەتشە يازغۇنچە، ئۇنى قانداق ئېلىسىز؟
npub ئۆزلىكىگە تولۇق ئىگە. ئۇنى قەزەدە يېزىش، ئاۋازلىق ئوقۇش ياكى تېرىنىچىدىن سڪان قىلىش مۇمكىن ۋە بۇ سىزگە شىپرلەش ئۈچۈن كېرەكلىك بولغان تək ئىش. ML-KEM-768 ئاممەلىك كىچىسى 1,184 بايتقە تەۋە. ئۇنى ئاۋازلىق ئوقۇش مۇمكىن ئەمەس، ئۇ ئىسېم ئىزاھىتىگە سığمايدۇ ۋە ئۇ 32 بايتقىن ئىبارەت بولغان بىر ئىزاھەتنىڭ يانىدىكى QR كودغا مۇناسىب ئەمەس.
كۆلەملىك ئاسان قىسمى. قېراۋەڭ قىسمى ئىككىنچى تۇچىنىڭ ئۈچ خىل مۇتەمىز مۇشكىلنى كەلتۈرىشىدۇر، بۇ ماقالانىڭ قېلىدكى قىسمى بەلگىلى ئۇشۇ مۇشكىللارغا جاۋاب بولۇپ قالىدۇ:
- ئۇ ئالماشتۇرۇلىدۇ. كۆزگە تۇشۇپ كۆرۈپ ئېنىق ئۇقۇمايدىغان تۇگۇن، ھۇلقتەكچىنىڭ ئөз تۇگۇنىغا ئالماشتۇرۇپ ئېلىش مۇمكىن بولغان نۇقتىسىدىكى نەرسىلەرنىڭ بىرى. 4-بۇلۇم ئۇنى ئىزدەھلىمگە ئىمزا ئارقىلىق باغلىۋاتىدۇ، بۇ ئۇنى قە터لىك قىلىدۇ.
- ئۇ پايدىلانغۇچىنىڭ ئاممۇچىلىرى ئارا ئۇيغۇن بولۇشى كېرەك. تېللەپون ۋە لپتاپتاكى بىر خىل ھېساب بىر خىل كىLY (kalit) كۆرسىتىشلىرى كېرەك، بولمىماساش، بىرىگە تاللانغان خەبارلار يەنە بىرىدە ئاچىلمايدۇ. 3.2-ب bölüm بۇنى چۈشەندۈرۈپ بېرىدۇ.
- ئۇ يوقاتىلىپ قالىشى مۇمكىن. ئاممەۋى يۇمۇق كىچىك بىر سىرلىق مەلۇماتنىڭ ئاساسىدا قايتا يېلىتىلىدۇ، شۇڭغا ئەسلىدە ساقلىنىپ قالىشى كېرەك بولغان نەرسە شۇ سىرلىق مەلۇماتتۇر — ۋە ئۇنىڭ تۈزۈلۈشى چەگلىدۇ، باشقا ھېچ نēr ئۇنى قايتا تۇرغۇنلاشتاپ بولالمايدۇ. 10.1-بۆلۈم بۇنىڭ قانچە تۇراشلىقىنى ئېنىق بېكىتىدۇ، چۈنكى بۇ مەسىلە يېڭىلىپ قالغان ئەمەس، بەلكى ئۇنىڭ ئالدىدان قالغان باھىسى تۇلىنغان.
2دېزائىن چەكلىملىرى
تۆتلىك چەكلەملەر جاۋابنى شەكلەپ تۇرىدۇ، ئۇلار ھېچقانداق كود يېزىلماي تۇرىپ، ئاشكارلانغان لايىھەھەنىڭ كۆپچىلىك قىسىمىنى چىقىرىپ تاشلايدۇ.
- سىرلارنىڭ ئەڭ كىچىك مىدەر بولۇشى. Nostr foydalanuvchiliri ئادەتتە پەقەت بىر سىرنى، ئۇنىڭ نامى nsec، تۇتۇۋاتىدۇ. ھەر بىر qoșundiq سىر تارىخىڭىزنى يوق قىلىشنىڭ يەنە بىر ئۇسۇلىدۇر، nsecنى يېڭىلىق قىلىشنى بىلىدىغان كىشى باشقا ھېچ نאַרنى يېڭىلىق قىلىشنى بىلىمەيدۇ. 3.1-ب bölüm بۇنىڭ تۇغرادان كەتەرلىك چارا بولمايلىدىغانلىقىنى كۆرسىتىدۇ — nsec تىن تۈزۈلگەن پۇست-كوانتۇم كېي پۇست-كوانتۇم قوغەچىلىكىنى بېرىدۇ دېگەن ئىش يوق — شۇڭا، قايتا تۈزۈلمە ئەكسەر چەكتە بىر سىردىن ئىگىلىنىدۇ: ھەر بىر ئىدېنتىككا بىرلىكتە بىرلىكتە ھۆجႉەتلىنىدىغان، nsec بىلەن ئىلتىز ۋە ئوخشاش يەردە كۆرۈنىدىغان بىر تək كېي مۇھىم ماددىسى، شۇتاكى ئۇنى ساقلاشنىڭ ئۇسۇلىنى بىلىدىغان كىشى يەنە بىرىنى ساقلاشنى بىلىدۇ. 10.1-ب bölüm بۇنىڭ تۇغرادان قانچە باھىنىڭ بارلىقىغا ئاشنا بولدۇرىدۇ.
- ھوقۇقىت يوق. قايسى تالنىڭ كىمگە ئىگىلىك ئىكەنلىكىنى ئېيتىپ بولىدىغان، ئىناڽتىلىنىدىغان بىر سېۋېر يوق. بۇنداق سېۋېرنىڭ ھەر ھالەتتىكىسى خىبارلارنى يۆتلىشتۈرۈپ بولىدىغان نۇقتىغا ئايلىنىدۇ.
- كۆپلىك ئىسقىرىلار، بىر ئەۋلىك. Nostr ئىزبىرلىكى ئادەتتە بىرلا ۋاقىتتا بىر قانچە ئىلانلىق (client) تەرىپىدىن ئىشلىتىلىدۇ. تۇكى مەلۇماتلىرى قانداق بولساလည်း، ئۇلارنىڭ بۈتۈنلىكتە ئوخشاش بولۇشى كېرەك، شۇنداقلا ئۇنى بېرىش يوللىرىنىڭ ئۆزى، بۇ خۇسو sıyyەت قوغداۋاتقان راقىب تەرىپىدىن ئوناچاق كۆرۈلۈشىگە ئېلىپ بارمايدۇ.
- مۇزاكەرە يوق. "قايسى شىفرلارنى قوللىysiz?" دېگەن ئالماشتۇرۇشنىڭ channel ئىچىدىكى (in-band) ھەر قايسى ئۇسۇلى، ھۇمما تەرىپىدىن قواليچتىرىق تاللانغۇچە چىقىرىپ تاشلانغۇچە بىر يۇزە (surface) بولىدۇ. تۈزۈلمىدە تۆۋەنلىتىش (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 يانىدا، شۇنداق ئېچىش ھەرىكىتى ئارقىلىق كۆرۈنىدىغان، خۇدۇنىڭ كونترولى بىلەن كۆچۈرۈلگەن، ھېچقىانداق كۆلەپ تۇتۇلمايدۇ ۋە ھېچقانداق ئېنىق (clear) شەكلىدە بىر يەرگە يۆتكىلمىيدۇ. بۇ پارول ئەمەس ۋە كىرىش (login) ئەمەس. بۇ nsec سىگە ئوخشاش، ئىگىدىلىگچىنىڭ ئۆزى ساقلاپ قالەلەيدىغان ئىناچە مەزمۇن (key material).
تۇز مەقسەتلىك بىلندىن دۇمېن ئاجرىتىلغان، شۇڭا باشقا ھەرگىدەم بىر سىر خۇددى شۇلا كىلىت جۇپلىقىنى كېلىپ چىقىرىپ بولالمايدۇ. ئۇ epoch رەكلىت ئاۋرولۇشنى يېتەكلەيدۇ (بөлүم 9).
3.1 نېمەڭ ئۈچۈن كىي ئەڭلىكلىشىش كىيىسىدىن كېلىپ چىقىق بولالمايدۇ
ئاشكاراراق قورۇلما ئىدەرەسىدە بار بولغان سىرلانغان ئۇچۇردىن كىيىپەرنى سېدىلەش:
seed = HKDF(salt = "…", IKM = nsec) // do not do this
ئۇنىڭ dört خىل جازىبارلىق سەۋەبى بار، ئۇلارنىڭ بەرىكى تۇزۇق: يېڭى تەكلىرلەيدىغان نאַר يوق، چۈنكى nsec ئالاققا تەكلىرلەش بولۇپ بولۇپلا بار؛ ھەر بىر ئاناقەت تۇزۇلغان ئۇسۇلغا ئاساسەن ئۇيغۇنلاشقان، خاتالىق كېلىش مۇمكىن بولمايدىغان سىنگرونلىشىش پروتokolى يوق؛ ھەر بىر ئىدەنتىتلىك ئۈچۈن ئالماشتۇرغۇچە بىر ئۇلىنىشنىڭ تېگىدە تېگىدو قۇپلانغان بولۇشى، چۈنكى ئاناقەتلار كاليتقا (key) تۇۋارىدىدا مۇنازىرىلىشىش مۇمكىن ئەمەس؛ ۋە كاليتقنىڭ يايىلىشنىڭ ئالدىن بار بولۇشى، شۇنىڭ ئۈچۈن مۇشەرىك ئالدىنقى قېتىم ئىشلاشتا ئۆزىگە بىر نەرسىنى مۇھۇرلىيەلىگ ئىدۇرى.
تۆت مۇتاۋاپنىڭ بىر سەۋەب تۈرۈلىدىغان قىممەتسىزلىقى بار. يېكىلگەن npubقا قارشى ئىجرا قىلىنغان Shor's الگوریتمى nsec نى بەرىپ بېرىدۇ. سېيد ۋېرىئاتلىشى (seed derivation) nsec ئۈستىدە ئىجرا قىلىنغان ئاممەۋى ئالگوریتم. شۇڭچە، كلاسسىكىي قىسىمىنى بۇزغان رەقسىپ، ھەر كىمشىنىڭ ئىجرا قىلغانلاي HKDF دىنى ئىجرا قىلىش ئارقىلىق پۇست-كوانتىم قىسىمىنى قايتا تاشقىرىلايدۇ. "ھازىر يېتىپ ئاللاپ، كېيىن يېچ" (harvest-now-decrypt-later) — بۇ ئىزاھاتنىڭ مەقسەتلىك خەترگە قارشى تۇيۇش ئۈچۈن كېلىپ چىققان بولسىمۇ — بۇ جەريان بىلەن تۈزۈلگەن كېي (key) ھېچقانداق ئىزاۋەت قوشمايدۇ.
ML-KEM كېمپسۇلېتسىيۇن (decapsulation) كېيى، nsec دىن ئېلىپ ئېلىنىشك مۇمكىن بولمىغان ۋە كلاسسىك تېخنىكا بىلەن تېخنا يۆتكىلىپ ئېلىنغان بولمىغان ئېنتڕۆپىيەدىن كېلىشى كېرەك.
ئۇشۇ قەتەملىكنىڭ ئىكինچى بəndىسى بىرىنچىسىدەكىك مۇھിملىككە ئىگە. ئادەتتىكى NIP-44 خېبارى ئىچىدە ئىستifadəچىنىڭ قوراللىرى ئارىسىدا بىرلەشتۈرۈلگەن، مۇستەقىل تۈرگە كIRتىلگەن سىر - بۇ پەقەت قەدەملىرى كۆپايغان بىر خىل خاتا: بىر ئىلطىسامچى ئۇشۇ خېبارنى بۈگۈن يېزىپ ئالغا ئېلىپ، كېيىن ئۇنىڭ كلاسسىك ئالماشتۇرۇش ئاممىلىرىنى تېپىش ئارقىلىق ئەسلىي مەنبەنى ئېلىپ چىقىشقا بولىدۇ. شۇڭا كېلىسىدىغان بۆلەمدىكى يوللار مەزكۇر بولۇپ قالىدۇ ۋە ئۇلارنىڭ ھېچ بىرى «ئۇنى باشقا قورىلىڭىزغا يۆتكىزىڭ» دەپ ئېتىلمىغان.
3.2 رۇتنى ئىستifadəچىنىڭ باشقا قۇراللىرىغا ئېلىپ باشقۇرۇش
2-بۇلم 3-چەكلەۋىسى — بىر ئىدەنتىتېتlyk، بىر نەچچە قۇرۇلما — بۇ يەردە ھېسابلاش ئارقىلىق تولۇقلىنىپ بولالمايدۇ، چۈنكى ئەسلى مەزمۇنى تۈپىدىن، كљуچ قۇرۇلماكىلارنىڭ ئالدىراق ئالماشتۇرۇپ بولغان ھېچقانداق نەسىۋىسىنىڭ فۇنكسىيىسى ئەمەس. ئۇنىڭ ئورنىغا تاشلاش ئارقىلىق تولۇقلىنىشى كېرەك ۋە ئۇنىڭ تək بىر يولى بار: پايدالىنىشچى ...نى ئېلىۋېرىپ... nympq1… ئۆزلىرىنى كودلاش
كۆك ... دەپ كۆرسىتىلىدۇ nympq1… nsec يانىدا، ئىكինچى قۇرۇلمە ئۇنى شۇ پەنەلگە يېسىتىپ تېخىپ قويۇلغان حالدا قەبۇل قىلىدۇ. بۇ تۈمەن مېخانىزم. كود بېرىلمىغان قۇرۇلمە ئىştirەك بولالمايۇ، بۇنى 4.2-بۇلۇم تەس𝗜rīلەيدۇ.
قول ئالماشتۇرۇش بىرىنچى قەدەمدىن كۆرە ئاممەلىق بىر ئاساس بولۇپ تەڭىپلىنىدۇ. 3.1-بۇلىمدىكى ق規دا تۈپنىڭ كلاسسىكى ئېقىنىلىقلىق ئارقىلىقلا ھېچقىچان يۈرەش قىلمىشىكىنى ئەسكערتىدۇ، بۇنى ئاپتوماتىك قىلىدىغان ھەر قايسى مېخانىزىم — رېلې ئارقىلىق ئۇيغۇنلاشتۇرۇش ياكى ئۇنى ئەسلىي ئۆزلىك كېيىسىغا قاپلاش — ئەسلى ق規ىدىنى بۇزۇۋاتىدۇ. ئىستifadəچى قىلىدىغان بۇ قەدەمدە ھەمراھلىقنىڭ ھەقىقىي بولۇش سەۋەبىدۇر.
فورمات تۇتۇلغان (wrapped) يول ئۈچۈن ئورۇن قaldۇرۇپ تۇرىدۇ: بىر رېكورد تۇتۇلغان (wrapped) قېلىپچەلارنىڭ رەھبەرلىكىنى ئىچىگە ئېلىشى مۇمكىن، ھەر بىر قېلىپچە ئىجراچى باشقا قۇرۇلمىدا قايتا ياراھتىلىشى مۇمكىن بولغان كىي (key) تالتىدا بىر AEAD blob — مەللەن، پاسكى PRF نىڭ نەتىجىسى. ھازىرda بۈلۈنچە بىرەر نەرسە ئىگەرلىنىۋاتمايدۇ، ۋە بىرەر نەرسە ئىگەرلىنغۇچە... nympq1… كود ئۆتۈش يولىدىكى يالغۇز ئۇسۇل. 10.1-بۇلىم ئۇنىڭ قانچە مۇھى qayمىتىلىدىغانلىقىنى بېكىتىدۇ.
تەقىيدنىڭ ئۆزى ئۆزنىڭ سېتتە كاتეგورىيەسىدە ياتىدۇ، nymchat-pq-root...بەك باشقا كاتېگۆرىيەلار قىلغان شەكلىدە ئۇيغۇنلاشقۇچە (sync) قىلىدۇ. ھېچقانداق wrap تۇتۇپ تۇرمايدۇغان بولساىمۇ، ئۇ زərۇرلىق ئىشنى ئېلىپ بارىدۇ: ئۇنىڭ بارلىقى ئىكىنچى قۇرۇلما بۇ ئەھلىيەتنىڭ ئالدىنقىدان بىر تۇپى (root) بارلىقىنى بىلىش ئۇسۇلىدۇر، بۇ ئارقىلىق ئۇنىڭ مۇناقىشلىق بىر تۇپىنى يانا يەتكىزۈپ چىقىشى (minting) تۇختىتىلىدۇ (3.3-بۇلىم).
The nymchat-pq-root كاتეგورىيە كېرەك ئەمەس تۈپتىن ئېلىنغان ML-KEM تاللانمىسىغا شىفىرلانغان بولىدۇ. ئۇ قۇر تۈپنىڭ يەككە نۇسخىسىنى دەپ كېلىسىدۇ، شۇڭغۇن ئۇنى تۈپتىن ئېلىنغان تاللانما ئارقىلىق تاشلىغانلىق — تاللانمىسى قۇيۇقنىڭ ئىچىدە قالغان قۇيۇققا ئۇخشاش: ئۇنى يازغان قۇرۇلمە ئىنساپ قىلماساقتا، ئۇنى ھېچ قايسى قۇرۇلمە ئاداڭلىمىدۇ. ئۇ كلاسسىكىچە — NIP-44 ئارقىلىق ئۆزىگە — تاشلىنىدۇ ياكى تاشلىنمىدۇ. بۇ تەرخىم كلاسسىكىچە قوغەدا (protection) قوللىنىشقا رۇخسات بەرىدىغان يەككە يەر، ئۇنىڭ ئۈچۈن بۇنىڭ مۇمكىنلىكى بار: بۇ قۇردا ھازىر تۈپنىڭ ئۆزى يوق، ئۇنىڭ بارلىقىنىلا دەپ كېلىسىدۇ.
سېتىڭلارنىڭ ھەر بىر باشقا كاتېگאָرىسى ئۆزەكتىن كېلىپ چىققان كىيى ئىشلىتىشى مۇمكىن ۋە كېرەك. بۇ يەككە ئىستىثنا، ئۇ كۈچلۈكلىك ھەققىدە ئەمەس، بەلكى تۇۋاقچىلىق ھەققىدە ئىستىثنا.
3.3 ياريلاش ۋە ئېلىپ ئالۇش
يۈكلەنگەن ۋاقىتتا، ئۇزۇن مۇددەتلىك ئىزاھەتنى تۇتۇن، بىر كليئەنت بۇ تەرتىپتە ئىشلىگەن:
- بار بولغان بىر ... ئىزدەڭ
nymchat-pq-rootيېزىپ ئېلىش - كayıت تېپىلدى، ۋە بۇ قۇرىدلۇش ئۇنى ئېچەلەيدۇ. — ئۇنى قوبۇل قىلىپ، بۇ ئىدنتیتنى كۋانتىم تېخنىكىسىنىڭ كېيىنكى تەرەپلىرىگە ماس كېلىدىغان دەپ ئىنئاد قىلىڭ.
- ساناق تۇپۇلۇغان، بۇ قۇرال ئۇنى ئېچەلمىغان. — يېڭى تۈپ ياراتماڭ، ھېچ قانداق ئەلان يايماڭ. بەلگىلىمەنۇزغا ... كىرگۈزۈش ئارقىلىق بۇ قۇرۇلمىغا تەللەپ تەگشىلىشنى سۈرەڭ.
nympq1…ئۇنىڭ ئالدىن بار بولغان ئاسباقتىدىن كود. - قېتتۇر يوق — kök yaratىش، قەيدنى يايۇملاش، ئەلان قىلىش ۋە ...نى كۆرسىتىش
nympq1…كودنى پايدىلانغۇچىغا بىرلىكىنە بېرىڭ، تاكى ئۇنى ساقلاپ قالالسىڭ.
3-نچى قەدەمدە خاتا قىلىش ئاسان، تارتىپنىڭ ھەر بىر ئىجرا قىلىش ئۇسۇلىغا ق kaldۇرۇپ قالماشتىن يېزىلىپ قالدۇرۇلغانلىقىنىڭ سەۋەبى شۇ. ئىككى قۇرۇلما ھەر بىرى رۇت تۈزۈشنى قارار قىلسا، بىرلا ئىزاھەت تال altında ئىككى مۇستەقىل رۇتنى تۈزۈپ چىقىدۇ، بۇ تارتىپ شۇ خاتىنى ئالدىنى ئالماق ئۈچۈن يېزىلغان.
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" دېگەنلىگى رېلېنىڭ ھەر بىر (تۈر، پۇبلىك كېي، d-tag) ئۈچۈن بىر ھەدسىنى ساقلاشىنى بىلان مەلانگىلىنىدۇ، شۇناچە يېڭىدىن يەتكۈزۈش ئالدىنقى ئۇلانمىنى ئورنىغا چىقىپ ئالماشتۇرۇپ قويىدۇ. شۇنداقچە ھەر بىر ئەھلىيەت تېخى بىرلا ھازىركى كېتەپچەگە ئىگە، بۇنىڭ سانتىكىدە "ئەلیسنىڭ كېيئىنى ئىزدەش" تۇغرىدانە-تۇغرىغا گۇمانسىز بىرلىكتىكى ئېلىپ كېلىش بولىدۇ، تۇغرىلانماققا كېرەك بولغان رەپسىز ئەمەس.
قول تاتقۇش مەجبۇرىيەتتۇر. ھەرىكەت ئىدەنتىتلىق ئانرى تەرىپىدىن ئىزاھلانغان، شۇڭايقا «بۇ ML-KEM ئانرى بۇ npubگە مەخسۇس» دېگەن تەلىپ ئۆزىنىڭ npubىگە تەڭ كۈچلۈك. باشقا بىر كېپسۇلەلەش ئانرىسىنى ئالماشتۇرۇش secp256k1 ئىزاھلىنىشىنى تۇگۇن قالدىرىشنى تەلەپ قىلىدۇ. بۇنى قىلەلەيدىغان ھۇجۇم قىلغۇچى ئۆزىنى KEM بىلەن باسقۇنچىلىق قىلىشقا قاچۇرمايدۇ.
ئانونسلارنىڭ ۋاقىتى ئۆتۈپ كېتىدۇ. يەتتى كۇنلۇق NIP-40 مۇددىتنىڭ ئانتلاشى، ھەر 24لىك س bour ساگتتا قايتا يېرىلىش، تۇرمۇچۇتنى كونا بولمىغان، بەلكى ھازىردا جەريانلىشىپ تۇرىدىغان كلىئېنت ھەققىدەقىلىك نۇقتىغا ئېقىۋالەت قىلىدۇ. ئاساسنىڭ ئۆزى ھەرگىدەم مۇددىتى ئانتمايدۇ؛ ئۇ ھەققىدەكى ھۆججەتنىڭ ئۆزى مۇددىتى ئانتىدۇ.
ۋاقىتى ئۆتۈپ كېتگەن ئەلان، تۇتقۇچى (key) يوق دەپ كۆرىلگەن ئەلان بىلەن ئادەتتىكىدەك ئوناۋۇشلىق بولىدۇ: تەراپدאַרلار ھەر قانداق كىرۈش (login) ئوناۋۇشلىق بولغان ئادەتتىكى NIP-44 نى يөرتەت، كلىيىنت قايتا يۆرتۈش (republish) قىلغاندا، كېلىسىدىكى كۆرۈنۈش ئارقىلىق پۇست-كوانتۇم (post-quantum) ئالماشتۇرۇشنى قايتىدىغان باشلاشقا كېلىدۇ. شۇناچە، بىر ھەپتەدىن ئۇزۇن ۋاقىت تۇتقۇچىسىز قالماق، ئۇ ۋاقىت ئارىلىقىدا يөرتۈلگەن خەبارلارنىڭ ھامايىتىنى (ئۇلار كوانتۇمغا قارشىلايدىغان ئەمەس، بەلكى كلاسسىكى ئۇسۇل بىلەن قۇپغا ئېلىنغان) چىقىنچىق قىلىدۇ، ئەمما بۇنىڭ ئۆزگە ھېچ قانداق زىيانى يوق. يөرتۈش ئۆزگىرىشگە ئۇچرايدۇ ئەمەس، كەلگەن ھېچ نאַר ئوناۋۇشلىق بولمايدۇ ۋە قايتىپ كەلگەندە ھېچ قانداق ھەرىكەت قىلىش شەرت ئەمەس.
بۇ تەوازنلىق يوقماقلىق ۋاقىتنىڭ تۈگەشكىسىنىڭ كۇتۈلمەدەڭ نەتىجىسى ئەمەس، بەلكى ئۇنىڭ سەۋەبىدۇر. بىر نەرسە بولمىسا، كايت ئۇ كەتتتۈرگەن كљуچتىن ئۇچۇن ئۇزۇن ياشايدۇ: سىلىنىپ كەتكەن، قايتالاشقا ئېلىنغان ياكى مۇھىم قىسمى ئالماشتۇرۇلغان قەزدا، ھېچ كىمشىم بىلەن تۇتمىغان كљуچكە ئېقىقلاشتۇرۇش بىلەن تۇغۇلغان دائىمیي بۇيۇرىق قالىپ قالىدۇ، بۇنىڭ نەتىجىسىدا ئۇنىڭ ئالدىدا يەڭىلغان خىبارلار ئىككى تەرەپتىكىمۇ خاتا كۆرۈنمىدىغان ھالدا يوقىلىپ كètتۇرىدۇ. يەتتى كۈن بۇ ۋاقىتتەۋرىنى چەكلىۋەتتى، بۇ رېلېلارنىڭ كلىېنتلارنىڭ كۆرۈپ قالىشىنى كۇتۇۋېلىپ ئەمەس، بەلكى ئۆزلىرى كايتنى سىلىپ تاشلىشىگە مۈمكىنچىلىك بېرىدۇ.
تۈزۈمكى مەيدان ئۇنىڭ فورماتىنى نوملايدۇ. دالان ... pk2...ۋە رەقەم سۇسەم ئەمەس، بەلكى مۇھىم شەرتنىڭ بىر قىسمىدۇر: ئۇ كېيىنىڭ (key) قايسى پېي لوڈ (payload) فورماتى بىلەن ئىشلىتىلىدىغاندۇگىنى بىلدۈرىدۇ. بۇ ئۇزۇلۇقنى تۇنىڭماس ئوقۇغۇچى «Nymchat mijanتى، پوزت-قانتىم (post-quantum) كېيى يوق» دەپ خۇلاسە مېڭ ئېلىپ، ھەر قايسى كىرگۈچ ئوقۇيەلمىدۇغان ئادەتتىكى NIP-44 نى يөنىتىدۇ. بۇ ھەقىقىي يېڭىلىش يۆنىلىشىدۇر، فورمات نۇمۇرلىرىنىڭ مەقسىدىنى بىر قىدار بېلگىلىمەق كېرەك: تۇنىڭمىغان ئىقتىدار تەلىپى ھىمىيەنىڭ ئازايدىغان بولۇشىغا سېلىپ كېلىشىگە ئېقىلىق، ئەمما يەتكۈزۈلۈشىنىڭ ئازايدىغان بولۇشىغا يوق. بىر تەرەپ ئىشلەتەلمەيدىغان كېيى، ھەتتا كېيىنىڭ يوقلىقىدىن بەخەتەرەكتۇر، چۈنكى ئۇ تۈزگەن خەبەر ئىككى تەرەپتىمۇ خاتالىق كۆرسەتمەيدىغان قىلىپ يوق بولىدۇ.
4.1 يوقلىق مەنىلىك ۋە ئۈچكىلىك
تۇۋا، ئەمما مۇهم بىر تەپسىل: ئەلىن ماlumat پەقەت پۇست-ڪۋانتۇم ئىقتىدارىغا ئىگىلەرنىڭ ئەمەس، بەلكى ھەر بىر Nymchat ئىزبىتچىسى تەرىپىدىن يايىلىدۇ ۋە كىلتۇم مەيدانى ئىختىيارى بولىدۇ. بۇ ئىككى نۇقتىنىڭ ئەمەس، ئايرىلىشقا بولىدىغان ئۈچ خىل ھالەتنى ۋارقىقى قaldۇرىدۇ:
| كۆزەتتى | مەنىسى | ھەرىكەتنى يەتكۈزۈڭ. |
|---|---|---|
| تۇزغۇچى بىلەن ئەلان | Nymchat, kvant keyingi قاۋلىنىشىغا ئىگى | گىبرىد |
| ئېلىنغۇچۇ، ھېچقانداق ئاۋتار يوق. | Nymchat, faqat klassik — post-quantum o'chirilgan, yoki kimlikنىڭ تۈپىگە تېخى ئۇلانمىغان قېتىم. | كلاسسىك NIP-17 |
| ئېلان يوق | مەللوم بولمىغان كلىيەنت. Nostr ياكى Bitchat ئىستifadəچىسى بولۇشى مۇمكىن. | كلاسسىك، ئۇيغۇنلىق قاپلىمىسى بىلەن. |
Üchinchi qatorni toqunchi qator bilan birläştirish haqiqiy ziyann bolidu. Kalitsiz e'lan — jo'nätüchining Nymchat ishlatishini bildiriş qilinidu, bu imzalanghan bayanat bolup, u jo'nätish yo'lining tanimay alaman bolghan har kim uchun aks holda qo'shish dûrmish edi bolghan taxminiy protokollararo qัพlamani ötkäzip ketishك imkan beridu.
4.2 كۆكنى ئاچالمىغان ئاﻻت سۇكۇنەتلىكتە قالىدۇ
ئېلاننىڭ ئورنى تۇتۇلىدۇ: ھەر بىر ئىدەنتىتېت ئۈچۈن بىر ھەدىسە، ئەڭ ئاخىرقى يازما ئۆتۈۋېلىدۇ. بۇ تəkلىك يېزىلىش نەزىمىيەتىنىڭ ئىشلىشىگە سىرى تۇرىدۇ، شۇنداقلا، ئۇلاشتۇرۇلمىغان قۇرۇلمە ئېلان قىلسا، ئۇنىڭ خەتەرلىك بولۇشىغا سىرى تۇرىدۇ. ئۆزۈگى ئۈچۈن ياپىدغان تۇكىنى ئېلان قىلىدىغان بىر قۇرۇلمە ئەسلىي يېزىلىشنى ئۆتۈۋېلىدۇ ۋە ھەر بىر تېكىنى باشقا قۇرۇلمىلار ئېچەلمىگەن تۇكى بىلەن شىفىرلاشقۇچە بولۇپ قالىدۇ.
شۇنداق، تاتنىڭ بارلىقىنى بىلىدىغان، ئەمما ئۇنى ئاچالمەيدىغان قورال ھېچقانداق ئېلان قىلمايدۇ. ئۇ بۇزۇلغان ئەمەس ۋە پروگراممادىن چەكلىنىپ قالغانمۇ ئەمەس: ئۇ تالغاچلىرى بار بولغان ھەر بىر خەبارىنى ئېقىسىشقا تەماسكۈر تۇرىدۇ ۋە ئەسلى ئۇسۇلدا يՈrīدۇ، شۇنىڭ بىلەن بىرلىكتە پايدالىنىچىغا ئۇنى باغلاشقا تەلىپ قىلىدۇ. شەخسىيەت نىشانىنىڭ نۇمىدىن خەبار قىلالمەيدىغان قورال ئۈچۈن سۈكۈن تۇرىش تېگىستىك ھەرىكەتتۇر.
5كاشف قىلىش ۋە يۆتگۈزۈش قارىرى
ئىستifadəچىلەر ھەمراھلارنىڭ تالپاتلىرىنى ئىككى ئۇسۇل بىلەن بىلدۈرىدۇ. تۇرغۇن ئەپتۇراتسىيا ئىستifadəچىنىڭ ھەقتا ئېچىك مۇناقاشە قىلىۋاتقان ۋە گۇرۇپقا ئالماق بولغان ھەمراھلىرىنى قاپلىغان بولۇپ، ئۇلارنىڭ خەبارلىرى ئادەتتىكى ھەرىكەت كىپ كەلىدۇ. تۇنجى م كەره ئۇچراتقان ھەمراھ ئۈچۈن، ي lەتمە ۋاقتىدا بىرلىككە ئىشتعمالان سۆرەش ئىشلىتىلىدۇ، بۇ 2.5 سېگۇندىن كۆپ بولمايدۇ؛ ئەگەر ئۇ ئەڭگىلىمىسە، خەبار كلاسسىكى شەكلىدە ي lەتىدۇ، بۇ يېڭى بىر ختا ئۇسۇلى ئەمەس، بەلكى كوانتتىمۇتتەۋە قوشۇلغانغا چۈشدىن بұلگۇنچە ئىگىدە بولغان ھەرىكەتنا.
نېگاتىۋ نەتىجە ئەبدىدىي ئەمەس، ئون dəقىقىگە كېسىپ قويۇلىدۇ. يېڭى قۇرغۇنى بىرىكتۈرگەن ياكى براوزېر ئىلانى ئارقىلىق كىرىشتىن يەرلىك ئاھرەتكە ئۆتگەن پايدىلىنىچى، سۆزلاش ھېلىدە پۇست-قانۇم (post-quantum) ئىقتىدارغا ئىگە بولىدۇ، ئەگەر «ياق» دېگەن جاۋاب ئەبدىدىي كېسىپ قويۇنسا، ئۇلارنى خەبارنامە ۋاقتىغا چۈشەندە كلاسسىك شىناڭلاش (classical encryption) تە嚟قىسىدە قالىدۇ.
5.1 نېمە ئۈچۈن تۆۋەنلەتىش ھۇجۇمى بولمايدۇ
يېتلىش قارىرى بىر سۈئالغا ئېلىپ كېلىدۇ:
pq = (we hold a signed, unexpired ML-KEM key for this recipient)
ئىقتىدار كىرىشتۈشى، قوللانغۇچอัลگورىتلىرى رەپسلىكى، ۋە ھۇمما تەرىپىدىن كۈچسىز يولغا زۇرلاش ئۈچۈن خالىلانغۇچ ھېچقانداق مەيدان يوق. خەبارنى تۇتۇپ تۇرىشنىڭ. is مۇزاكەرە قىلىنىدۇ ۋە ئىزاھلىنىدۇ. مەزمۇنى چىقىرىپ تارتىلغان ياكى تۇتاۋلەتپەڭ خەبارنىڭ خاتا ئۇسۇلى، ھائبرىد خەبارنىڭ تېگىرىتىلىدىغان بىر نەرسەگە ئالاپارتىلىشىدىن ئەمەس، بەلكى خەبارنىڭ بۇ خزمەتنىڭ ئالدىدىكى ئەھۋال شەكلىدەكى كلاسسىك حالەتكە ئۆتۈشىدۇر.
تەرسىدىكىسى ب ҳам تۇغرى ۋە ئۇنىڭ ئەھمىيىتى ئۇنچىلىك يۇقىرى: بىر ئىشتىيان ھىبرىد يۆتكىتىدۇ پەقەت ئۇ تالغا ئىگىly بولغاندا، ۋە تالغا ئىگىly بولۇش قوبۇل قىلغۇچىنىڭ تالنى ئېچىپ ئېلىشقا (decapsulate) قۇرايلىق ئىزاھات بولىدۇ. كوانتتېن كېيىنكى (post-quantum) تېخنىكا بىلەن بىر خەبارنىڭ ئېچىپ ئېلىشقا بولمايدىغان كىشىگە يۆتكىلىشىگە ئولتۇرىش يوق.
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)
خەبارنى ئوقۇش ئۈچۈن ئىككى سىرنىڭمۇ قايتىلىپ تېقىلىشى كېرەك: تائەپكى قۇر پەقەت بىر NIP-44 شىفرالىغان خەبارنى بەرىپ بېرىدۇ، ئۇنى ئېချىش ئۈچۈن كلاسسىكلىك ECDH كېرەك. secp256k1 نى بۇزغان كوانتۇم قارشى تۇرىدىغان تەرەپ ئىچكى قالتىرنى ئېلىۋالغان بولسا-da، ھەمەن ML-KEM بىلەن يۇرىشىش كېرەك؛ ML-KEM نىڭ بۇزۇلۇشى تائەپكى قۇرنى ئېلىپ تاشلايدۇ ۋە NIP-44 نى ئۆز ئورنىدا قالمۇقتا قaldۇرىدۇ. ھەر بىر كىرگۈزۈلگەن ئۇچۇر ئۆز ئورنىغا لايىقلۇق:
kem_ssپەقەت تالجيكى قۇرۇلمىنىڭ ئۆزۈگىگە كېي بېرىدۇ. بۇ كېلىپ چىقىرىشتىكى ھېچقانداق ئىش ECDHنىڭ خىرا نىتىجىسىغا تەكەڽ بەرمەيدۇ، بۇ 6.1-ب bölüm ئاكتىۋاللاش قىلىدىغان نەتىجىدۇر.kem_ct,recip_kem_pkۋە ئىدېنتىگىلىك تاللىرىنىڭ ھەممىسى تەۋەلىك مەبلۇغ سۈپىتىدە باغلانغان، شۇنىڭ ئۈچۈن تاشقى قەتئەم ئۇنى ھەسىل قىلغان ئەسلى تېكىستگە تەمىنلەپ تېگىرىلىۋاتىدۇ. بىر شىفرلانغان ماتېنى باشقا يەتكۈزگۈچىنىڭ ئىدېنتىگىلىكىگە بىگىپ تەگىش قىلىش، شىفرنى يېچىش ئەمەس، بەلكى تۇتاشتۇرۇش بولمايدىغان نىتىجە بېرىدۇ.
قەپسۇلاشتۇرۇش ھەر بىر خەبارەت ئۈچۈن يېڭідىن بېلىگىلىنىدۇ. قېلىپلىگەن تەرەپنىڭ ML-KEM ئۆزگەرگۈچى ئۇزۇن مۇددەتلىك، ئەمما ھەر بىر خەبارەت مۇستەقىل بىر شىفرالىق ماتنى ۋە شۇنداق مۇستەقىل بىر
kem_ss. Nonceنى تەرەڭلىگۈچ (randomize) قىلىشتىن كۆرە، ئۇنى كېلىپ چىقىرىشنىڭ (derive) ئىشەنچلىك (sound) بولۇشىغا سەۋەب بولغان شۇ نەرسە:
ChaCha20-Poly1305
(تېگلىك، نونس) جۈپتىسىنى قايتا ئىشلىتىش ئارقىلىق بۇزۇلىدۇ، بۇ يەردە تېگلىكنىڭ ئۆزى ھەر بىر مېساج ئۈچۈن يېڭى، شۇڭغا ھېچ قايتىش جۈپتىسى بولالمايدۇ.
6.1 قەتلىمLER نېمە ئۈچۈن ئايرىم قالىدۇ؟
باشقا ئۇسۇل ئىككى سىرنى بىرلىكتە سۆزلىشىش كىچىسىگە قارىشتۇرۇپ، ئۇنى NIP-44گە بېرىشدۇر:
ck = HKDF-Extract(salt = "…",
IKM = ecdh_x || kem_ss || …) // do not do this
ئۇشۇ قۇرۇلمە كريپتوگراپىيە جەھەتتىن پىچىق. ئۇنىڭ بىر تەرەپلىك قۇرۇلمىشلىق مۇشۇقلىقى بار: ئۇنىڭ ... كېرەك.
ecdh_x, ECDH نىتجىسىنىڭ خام x-koordinatasy، كىي مادىيىتى سۈپىتىدە — ۋە بىر براۋېزەر ئېقىلىشى (NIP-07) ياكى ماسافەتتىن ئىزا قۇلغۇچى (NIP-46) ھەرگىزمۇ ئۇ قىمتەتنى قايتۇرمايدۇ. ئۇ چاقۇرغۇچىنىڭ ئۆزى ئۈچۈن NIP-44 نى ئىجرا قىلىدۇ ۋە شىفرلانغان مەلۇماتنى قايتۇرىدۇ، بۇنىڭ ئەسلى مەقسەرى ئالاھىدە پروگراممانىڭ يېتىشىپ بولمايدىغان يەرلەردە ئاكچىنى (key) ساقلاشدۇر.
شۇنداقچە، سىرلارنى ئارلەشتۇرۇش، ئىدېتېكا كېيىنى ئالماسىچى (signer) ئىچىدە ساقلايدىغان ھەر قاندىگى كىرىش (login) ئەھۋاللىرىنى، يەنى ئەڭ ئىنتايىن ئىستانلىغان پايدىلىنىبلىگۈچىلەرنى چەتلەپ ئېلىدۇ، ۋە كېيىنى تەرخىملەش (key derivation) بىلەن قىلىنغان ھەر قانداق ئىش بۈلەرنى ئۆزگەرتىپ بولالمايدۇ. قەتەملەشتىرىش (Layering) قאַרەپلىقنى ئېلىپ تاشلايدۇ: NIP-44 تۇخشۇن قېلىدۇ ۋە ئالماسىچىنىڭ ئۆزى بىلەن ئىدېتېكا كېيىنى ساقلايدىغان ھەر قانداق نار تەرىپىدىن تەŕتىپلىنىدۇ، بۇنىڭگە قارسىلىقتا KEM يېرى مۇرىد (client) تەكپۇر ساقلايدىغان قايتارۇش كودىدىن (recovery code) ھېسابلىنىدۇ. ئالماسىچى (Signer) كىرىشلىرى ئىككى يۆنىشتىكى سادە پۇست-كۋانتۇم (post-quantum) ئىشتىراكچىلىرىدۇر.
بۇ خەردەت باندۋidth ۋە ئۇ كىچىك ئەمەس. ML-KEM شيپىرلىگەن تېكىستى 1,088 بايت بولۇپ، ھەر بىر خەبارەتكە چېكىلگەن بولۇپ، base64url كودلىشىش ئارقىلىق 1,451 خاراكتېرگە ئېلىپ چىقىدۇ؛ تاشقى AEAD 16 بايتلىق Poly1305 تاقئىسىنى قوشۇپ، ئۇنىڭ ئىچىدەگەلىگى NIP-44 PAYLOAD-نى ئۈچتෙන් بىرگەچە كۆپەيتىدۇ. 50 خاراكتېرلىك بىر خەبارەت 176 بايتتىن 1,712 بايتقا، 2,000 خاراكتېرلىك بىر خەبارەت بولسا 2,820 بايتتىن 5,238 بايتقا كۆپەيدۇ. خەبارەتنىڭ قانچە қىسقا بولۇشىدىن قەتئىي بولمىغانداك، ھەر بىر خەبارەت ئۈچۈن تقريبەن 1.5 KB بولۇپ قالىدۇ، بۇ ئورتاق سىرنى قايتا ئىشلىتىشتىن ئۇچۇن ھەر قېتىم يېڭىدان ئىپادى قىلىشنىڭ باھىسىدۇر.
6.2 ئۆزىنى تەسۋىرلەيدىغان مۇحتۋىلەر
The pq2. پريဖিক্স ئىگىلەشتۇرۇشنىڭ قەتتىرىتىملاشتۇرۇشىنى تەمىنلەيدۇ: ئۇ ئۆزىنى تەسۋىرلەپ قويغان، شۇڭا تەكلىپ قىلغۇچى بىر بەلگىگە ئىشەنماق ياكى باشقا تەرەپنىڭ نېمىنى قوللىشىنى ئەسلىپ قالماقكە قارىغاندا، پېيْلودنى تەھلىل قىلىش ئارقىلىق تېخىمىنى ئېچىش يولۇنى تاللايدۇ. پريဖিক্সنى تاللىمايدىغان ئوقۇغۇچى ئۇنى خاتا ئوقۇماقكە قارىغاندا، پېيْلودنى ئېچەلمەي قالىدۇ، شۇنداقلا ئىككى تەرەپ تېخىمۇ پۇست-كوانتۇم تەسىرىنى قىلغانچە تاللانغان خەبارلار، ھېچ قايتۇرۇشسىز ئادەتتىكى NIP-44 دەپ ئوقۇلىدۇ.
ML-KEM پېكىتلىكىش (decapsulation) ھېچقانداق خاتالىق بولمايدىغان قىلىپ تەسۋىرلانغان: خاتا يازۇلغان پېكىت (ciphertext) بېرىلگەن ئەھۋالدا، Fujisaki-Okamoto تەرجىمىسى خاتالىق نىتىجە ئېمما، بىر دەتەرمىنىستىك سېئۇدو-راندوم سىرلىق ماlumatنى قايتۇرىدۇ. شۇڭا، خاتا كاتال ھېچقانداق KEM قىتىرىدە كۆرۈنمەيدۇ — ئۇ NIP-44 ئىچىدىكى HMAC ئىشلەش كەسكىنلىكى دەپ كۆرۈنىدۇ، بۇ كلاسسىك خاتا كاتالنىڭ كۆرۈنۈش ئۇسۇلى بىلەن ئىلتىنىشلىشىكتۇر. چاقۇرغۇچılar ئىككىسىنىمۇ ئىلدەشتە ئېلىپ باقىلىدۇ، شۇڭا خاتالىقنىڭ ئالدىن بىلدۈرۈش ئۇلىقلىقى يوق. بۇ سېكتىيشن 9.1 دىكى ئەھۋال لىستىنى ئىشلىتىشلىكلىك قىلىدۇ: ئىلمان (client) ھەر بىر كاتالنى تەرتىپلىي تەكشۈرۈپ، قايسىسى تېگىنىڭ تېگى ئىكەنلىكىنى NIP-44 تەرىپىدىن ئەگىلىدۇ.
6.3 ھەدىنى ئېلىپ تېخىشلىك قەپتىنىڭ ئىككى قەتی
A NIP-17 شەخسىي بىچىمە بىر NIP-59 bezekleme: imza qoyulmagan xabar, yolluvchining kimlik kaliti (turi 13) bilan muhrlanghan, keyin esa her bir xabar uchun yaratilgan bir marta ishlatiladigan kalit (turi 1059) bilan qoplangan. Kimlik kalitini to'g'ridan-to'g'ri tutgan kirish holatida, Nymchat har ikki qatlamni uyg'unlashturadi, ularning her biri o'z qoplama (encapsulation) usuliga ega.
تىزگىچى تىزگىچىلىك قىلغاندا تەنھە تاراظى قۇرۇمغا ئىگە بولىدۇ. مۆھۇر تىزگىچى تەرىپى ئادەتتىكى NIP-44 سىپاتىدا ھەزەرلىنىدۇ — قوللى ning ئۇنى ھەزەرلەيدىغان كىچكىكىگە ھېچقىانداق كۆرۈش مۇمكىن ئەمەس — شۇڭا ئۇنى ئۆز ئورنىدا ھىبرىدلىشىش مۇمكىن ئەمەس. بۇ سۆزلىگەن ھۇڄۇمغا قارشى ھېچقانداق تەسىر قىلمايدۇ: مۆھۇر تەنھە قىرغى قۇرۇم ئارقىلىق ئېلىنىشى مۇمكىن، قىرغى قۇرۇم ئەگەر قويۇپ قالغان نۇسخە قىلغۇچى تەرىپى ساقلانغان نۇسخە بولىدۇ. قويۇپ قالغان ترافىكقا ئىگى بولغان دۇشمان، مۆھۇر ھەمماڭلىق قىلىدۇۋاتقان ۋاقىتتادىن بۇرۇن ML-KEM نى يېقىشقا تىرىشىشى كېرەك.
7گۇرۇپ خەبارلىرى ۋە قىسىملىك قاپلىش
تۇپ خەبارى بىر تək شىفرەلىگەن مەپسۇلات ئەمەس. ئۇ ھەر بىر ئەرەپكە يېيىلىپ بېرىلغان ئەسلىي مەپسۇلاتتۇر، ھەر بىر كۆچۈرمە ئۇنىڭ ئөз ML-KEM كىچىسىگە قاپلانغان. كىچىسىنى چىقىرىپ سالغان ئەرەپ ھىبرىد قاپلاشنى ئالىدۇ؛ قىلمىغان ئەرەپ كلاسسىك قاپلاشنى ئالىدۇ.
بۇ سادە تەقتىلاسىڭىز خاتا قىلىدىغان ھېسەپ-كىتەب مۇشكىللىرىنى يarıتىدۇ. ئەگەر ئون ئۇچۇرىنىڭ سەككىزىسى ئالماشلىرى ھىبرىد نۇسخىسىنى ئالۇپ ئالدىغان بولسا، خەبارى... ئەمەس سەككىز پۇنۇت مىڭدىن سەككىز قېسىمى قورۇقلىنىدۇ. رەقسىپلىك كۈچلىنىشچىگە ئۆنلىكنىڭ بەھرىسىدە ئوخشاش بولغان بىر تېكىستنىڭ بىر كلاسسىك نۇسخىسىغا ئىھتىياج بار، شۇنىڭ ئۈچۈن خەبارەت پەقەت ... بولغانلا قورۇقلىنىدۇ. ھەر بىر نۇسخىسى...
Nymchat شۇنداققا يېيىلىش (fan-out) جاريانىدە ھەر بىر خەبارنىڭ قاپلىغىچىلىقىنى تېگىشلىك چېرتىدۇ — بۇ سان قۇرۇلمىلار (wraps) تۈزۈۋاتقان ۋاقىتتۇلا بىلىنىشى مۇمكىن — ۋە ئۇ خەبارنىڭ قوغداپ قالىندىقىنى ئېلىپ بايان قىلماشتىن، بەلگىدە «10 تىن 8 تىسىغا كوانتۇمغا qarşilik» دەپ بىلدۈرىدۇ. سان بېلگىلىنمىغان يەردە، بۇ ... ئۈچۈن ئائتەپ ھالەت. ئالدىم تۆپ خەبارى (fan-outنى پەقەت يىبىتىلاشچى ھېسەپلەيدۇ)، ئىنترېپېيس تولۇق قوغداشقا ئەمەس، بەلكى قىسمىلا قوغداشقا ئېرىشىشنى ھېسەر قىلىدۇ. تək ئۆزۈنىڭ نۇسخىسىغا ئاساسلانۇپ تولۇق قوغداشقا ئېرىشتىمەن دەپ مۇلاھەزە قىلىش، خەبارنىڭ تۇغۇلغان ھالەتى ھەققىدە ئ aşirish بولىدۇ.
7.1 قوغۇنچە نېمەنى بىلون قىلىدۇ
قورغان ... ھەققىدە ھەقىقىەتنى بايان قىلىدۇ. خەبار, ئۇنى يەتكۈزگەن تۈزۈلمە ھەققىدە ئەمەس:
- تولۇق قورغالاش: بۇ يازمە تېكىستنىڭ ھەر بىر كۆچۈرمىسى ھائبرىد شەكلىدە چىقىلدى.
- قىسىمى: توپ خەبارىنىڭ بىر نەچە نۇسخىسى كلاسسىك ئۇسۇلدا چىقىپ كەتتى. ئۇلار تولۇق ئەمەس، بەلكى سۈپىتى تۆۋەنلەتىلگەن شەكلە كېلىشتىرildi، چۈنكى ئۇلارنىڭ بارلىقىدىكى بىر خىل ئېချىك مەزمۇننىڭ بىر كلاسسىك نۇسخىسى قارشى تەرەپ ئۈچۈن كۇფილიۋەلىدۇ.
- كلاسىكى (Classical) بەلگى يوق دەپ كۆرسىتىلمەي، بەيان قىلىنىدۇ، چۈنكى بەلگىنىڭ يوقلىقى "ھىمایىسىز", "بۇزۇلغان" ۋە "بۇ تۈردا بۇ خاسىلىك يوق" دېگەن ئارا بىلىنمەيدىغان بولۇپ قالىدۇ.
ھەكەملىك خەبارۇ تەمگىلەنغاندىكىدە كېلىپ چىقىدۇ، يەنى كېيىنكى ۋاقىتتا تېرىش تەرىپىدىن تەبلىغ قىلىنغان ئۇچۇرلار ئاساسىدا قايتا ھېسابلانمايدۇ. بار بولغان شيفرلانغان تېكىست ئالدىنقىدىكىدىن قارشىلىق قوغدالۇش ئۈنۈمىگە ئىگە بولالمايدۇ، يەنى يېڭى تەبلىغ ئاساسىدە ئۆتكىنكى خەبارۇلارنى قايتا چىزىدىغان ئانترڦېيس رېلې ئۈستىدىكى بايټلار ھەققىدە خاتالىق بىر نەرسىنى ئېلىپ بارمىش بولىدۇ.
يۇقىرىدا كۆرسەتىلگەن تۈزۈلمە قىدۇلار بۇنى ئالماشتۇرمايدۇ، بەلكى ئۇنىڭ ئۈستىگە تەڭىلمەكتۇر: تۈزۈلمە خەبار ھەممە ئاغزىلىرىنىڭ كۆچۈرمىسى مۇھافظىلىنىدۇ دەۋەن ھالەتتە تۈمەن مۇھافظىلىنىدۇ، قوسقا قېلىپلىنغان تۈزۈلمە خەباردا قېپىلىش سانى بولمىسا، ئۇ "بىر قىسىمى" (partial) دەپ كۆرسىتىلىدۇ.
8ئۆزىڭىزگە ئالدىغا يېزىلغان نۇسخالار
کلايىنت تېگىشلىك ساقلاشتا بىر نەچچە نەرسە بەلگىلىگۈچىنىڭ ئۆز ئىدېنتىتېتىسىگە شىفرلانغان: بىگىرىشتۈرۈلگەن سېتتەملەر، سۆزلىشىش رەپسىتى، تۇمەن كљуچلىرى ۋە خەبارلار ئارخىۋى. بۇلار كۆپ خەبارلارنىڭ ئۆزىگە قارىغاندا بەلگىلىگۈچى ھەققىدە كۆپرىئەك ئۇچۇر بېرىدۇ، شۇڭاي خەبارلارنىڭ ئۆزى قانچىلىق ئەھمىيەتلىك شىفرلانغان بولۇشىدىن قەتئىنظر، بۇلارنى كلاسسىكى تۈرىدە قالدۇرۇش ئۇلارنى ساقلانغان ئەڭ قۇيۇقلاشماققۇراق نەتىجىگە ئايلىدۇ. ئۇلار 3.2-ب بۆلۈمدىكى بىر ئىگىسنا ਤੋਂ تاراستاق، بەلگىلىگۈچىنىڭ ئۆز تۈپكە ئاسلىنىlgan كљуچىگە قاپلانغان ئوخشاش ھىبىرىدنى ئىگىلەيدۇ — nymchat-pq-root کاتېگۆرىيەنىڭ ئۆزى، ئۇنى پەقەت ئۆزىلا ياراتىدغان بىر تالتىچقا مۇھۇرلىشىش مۇمكىن ئەمەس.
بۇ ئېلېمانتلار تۈزۈلمىنىڭ ئەڭ مۇھىم ئەھەمیيەتكە ئىگە يەردۇر. سۆزلىك تەرتىپ (settings blob) ياكى ئارخىپ قتىرى يىللىقلاپ بىر يەردە تەڭلىك قىلىدۇ، بۇ ئەسكە تۇرىدۇكى "ھەمدە تېز يېقىپ ئالماق ۋە كېيىن تېخلىمىنى çözۈلمەك" (harvest-now-decrypt-later) ھۇجۇمچىسىنىڭ تۇتاشقا نەرسىسىگە تۇخشاش — بۇ بىرەر بىر خەبارغا قارندىن كۆپ، چۈنكى خەبارلار ئىدەرىنىڭ ئۆز ئەسسىسىدە ۋاقىتلىق بولغاچ.
بۇ يەردە فورماتنى كاليت (key) ئەمەس، بەلكى بىر شەرت باشقۇرۇۋاتى. ئۆزۈككە ئاتالغۇچلىق بىرلا كۆچۈرمە ... تەرىپىدلن ئوناۋلىنىشىشى كېرەك. ھەر بىر ھېسابتاكى ھەر بىر ئاﻻت ئۆز ئېلانىدىكى رۆستېردا نېمىنى ئېချەلەيدىگەنلىكىنى ئېلان قىلىدۇ، ھېساب بولسا پەقەت ھەممىسى ئۆقۇۋالەلەيدىغان ئىشلىرىنى يازىدۇ. باشقا ھەر قانداق ئىش يازىلسۇ، بىر ئاﻻتنىڭ ئۆز سېتتلىرىگە كىرىشى مۇمكىن ئەمەس بولۇپ قالىدۇ — ٣.٢-بۇلمە باشقا ئۇسۇللار ئارقىلىق، باشقا يۆنىشتىن كېلىش ئارقىلىق شۇ سۇنچۇچقىقلىق كېسىرلىككە ئالدىنى ئالىدۇ.
كىملىقىنى تۇتۇپ قالغان، ئەمما تۇگۈنىنى تۇتمىغان ئاممىر، تۇگۈنلەشتۈرۈلگەن كىي بىلەن قۇپلانغان ھەر قايسى نარსىنى (ئۆزۈنىڭ تەڭسىتمىلىرىنىڭ ئۆزىنى ئەمەس) دائىرىلىك قىلالمايدۇ. بۇ مەقسەدتىن بۇلىپ تۇرىدىغان نەتىجە بولۇپ، خاتا ئەمەس؛ شۇڭا 3.3-بۇلىمدا يېڭى تۇگۈن يارىتىش ئۈچۈن ئەمەس، بەلكى ئۇنى بىرلەشتۈرۈش ئۈچۈن ئاممىردىن ئېلىپ باقىرۇ: ئىككىنچى تۇگۈن blobنى ئۆقۇشقا بولىدىغان قىلىدۇ ئەمەس، بەلكى كىملىقىنىڭ كىي مەزمۇنىنى ئىككى قېتىم بۆلۈپ تاشلايدۇ. ئىستifadəچى ئۇنى بىرلەشتۈرگۈنچە، ئاممىر ئىشلاشقا تەكىللىگەن — ئۇ ئۆزىگە كىيى بار بولغان نარსىنى ئۆكىۋېلىدۇ ۋە كلاسسىكى ئۇسۇلدا يөرتۈۋېلىدۇ.
بىر براۋېز ئىلتىزىكىنى باشقۇرۇۋاتقان قىتە ياكى مۇزاقلىق ئىزاھلىگچى (NIP-46) ئىزاھلىنىش ئۈچۈن ئىشلىتىلىدىغان nsec باريغا ئېقىلىق ئەمەس، ئەمما ئۇنىڭ قايتارپۇچلىنىش كودى بار، ۋە 6.1-بۇլۇمداگى قەتئەملىك تۈزۈلمىش تۈزۈمىگە كöre، بۇ كۋانتتىكىمدىن كېيىنكى يېمىكىنىڭ ئېھتىياجى بولغان بىرلىگىمۇ شۇ: ئىزاھلىگچى كونا ئۇسۇلدا NIP-44 قەتئەمنى ئىزاھلىۋېرىدۇ، كلىئەنت بولسا تاشقى قەتئەمنى ئۆزى تاللىماقلىرى. مۇنداق كىرۈش ئىككى ي 방향دا بولغان ئادەتتىكى ئىشتراكچىدۇر.
9ئاۋرولانش
The epoch تۇزۇشغا ئىدېگەن سان (counter) يېڭى كېي مادىتىنى ئىچىگە ئالماشتۇرمايدۇغان ھالدا رۆتاتسىيە (rotation) قىلىشنى مۇمكىن قىلدىغان ئىقتىداردۇر. ئۇنى بىر سان ئاشۇرۇش ئارقىلىق، بىر خىل رۇتتىن يېڭى كېي جۈپتى ۋە قايتا يېكىلگەن مەلۇماتنامە ئېلىنىدۇ؛ تېرىگىلار يېڭى كېينى ئالماشتۇرغىلى بولىدۇغان كېتىپتەن ئېلىپ ئېلىش ئىدۇرى. شۇڭا رۆتاتسىيە ئىستifadəچىدىن ھېچقىچە نەرسىنى ئىككىنچى تەرەپتە يېزىپ تۇتۇشنى تەلەپ قىلمەيدۇ: رۇت ئىزبەتلىمە بىرلىك ئۈچۈن بىرلىگىن تۇزۇلىدۇ ۋە ئەپۇك (epoch) ئايرىلىشن ئېلىپ بېرىدۇ.
9.1 ئۆتكىلىگ ئەپوخلار ساقلىنىدۇ ۋە ھېچ نאַר قايتا شەپتەلمەيدۇ.
كىي ئايرىلغاندا ھېچ نאַר قايتا يېزىلمەيدۇ. ئىشتەكچى ھالكى ئەپۇخدىن باشلاش بىلەن ئەپۇخ - 3 گىچە تەرگىش قىلىش مۇمكىن بولغان كانديداتلارنى تەرتىپلەيدۇ، شۇنداق ئالماشتۇرۇشقا قىدار ۋاقىتتە تالغۇنغان خىبار، ئۇنىڭ يەڭىلىشىپ يەنە ئالماشتۇرۇلغان كىي چۈشۈشىگە قارىغاندا ھەم ئېچىلىدۇ.
ئۇشۇ ۋاقىت ئارىلىقى ئاخىرلىق تۈرگە ئايرلىشنىڭ خەۋەپسىزلىكىنى كالتىرىدۇ: ئۇنۇڭ يوق تەۋەردە، ھەر قانداق ئاخىرلىق تۈرگە ئايرلىش ئۆتۈپ باراتقان ئۇچۇرلارنى ئارىلىقدا قالدىرىپ قويىدۇ. ئالدىن تەسىھ قىلىنغان ھەر قانداق نאַרسى ئىزدەتمە تۇتۇنلىق ئۆمۈرىنىڭ ئاخىرىتىكىچە ئوڭۇلىنىشقا يارايدۇ، چۈنكى ئىگىدىنىڭ ئۆزىنىڭ ئاچاپ بولالمايدىغان ئۇچۇرى، ئۇنىڭ قوغدىنى ئۆتكىنچە ياخشىلاشنىڭ مۇمكىن ئەمەس بولغان ئۇچۇرغا قارىغاندا كۆپ يامان (10.5-بۇլىم).
10بۇ نېمىنى ھىمایہ قىلمايدۇ
دىزايننىڭ ئىجرا قىلغان نەتىجىلىرىنى تېكىللەپ قېلىنغان ماقالە سىستېمىنى تەسۋىرلەۋاتقان بولمايانلىق، ئىنتېرဖېيسدىكى بىرسېكۇرىتىلىش خاسىلىقىنى مۇبالىغە قىلىپ كۆرسىتىش ئۇنى كۆرسەتمەي قالغان بولۇشقا قارغاندا يامانروق. تۆۋەندىكىلەر بۇ قۇرۇلمىنىڭ ھەمىيلىك قىلمايدىغان قىسلىرىدىن.
10.1 تۈپ ئىكինچى سىر، ئۇنى يوق قىلىش قايتۇرۇش مۇمكىن ئەمەس.
بۇ تەرەزىمەنىڭ ئەسلى باھىسى. 2-بۇلمىدا ئىستifadəچىنىڭ ساقلاش ئۈچۈن دېگەن بىر ئىشقا ئىگى بولۇش كېرەك دېگەن شەرتنىڭ ئىجرا بولماسلىقىغا سەۋەب: nsec تəkلا قۇنتۇم پۇست (post-quantum) كېيىنى قايتا تەڭشەلمەيدۇ، چۈنكى ئەسلى مەقسەت - ھېچ قايسى ئاممىۋى قىممەت ۋە باشقا ھېچقانداق يۇپۇق سىر ئۇنى ئاشكار قىلمايدۇ. ئەگەر ھېچقانداق قۇرۇلمە تۇپكىنى (root) تۇتمىسە ۋە 3.2-بۇلمىداگى توپلاقما (wrap) تېگىچە ئېچىلمىسە، تۇپكىدىن كېلىپ چىققان كېيىگە مۇھۈرلەنگەن ماددىلارنى قايتاڭلىق قىلغىلى بولمايدۇ. ھېچقانداق كېرىش (escrow) يوق ۋە بىرەر نەرسىنى تۇتۇپ تۇرەلەيدىغان ھېچقانداق مەئمۇرىيەت مەزمۇن قىلىنمىغان.
قول يەللىك كۆچۈرۈش يالغۇز يول بولغان حالەتتىكىدە، بۇ بىرىنچى قاراشتا كۆرۈنگەندىن كۆپ كېسكىن. تېگىگە ... نى كۆچۈرمەيدىغان foydalanuvchi nympq1… كود ئەنيۋېرىنىڭ ئۇنىڭ بىر دانە ئۇكۈلى بىر دۇزگۈنچەدە بار، ئۇ دۇزگۈنچىنى يوق قىلىش ئۇنىڭگە بېلگىلىگەن ھەر بىر پۇست-كۋانتىم خېبارنى، سېتتە بۇلبىنى ۋە ئارخىپ قۇرۇمىنى يوق قىلدۇرىدۇ. ئۇ
nsec ياردەم بولمايدۇ؛ ئۇ تۈزۈلمىنىڭ تەمەلى بولغان خاسىيەت.
كېيىن كۆپسەندۈرۈلگەن ھەر قانداق ۋېرىپ قىلىنغان يول، قولغا ئېلىنىدىغان يولنىڭ تۇتۇۋاتقان شىپتىسىنىڭ ئۆزىگە تەڭ تۇتۇشى كېرەك. ھۇجۇمچى بار بولغان ئەڭ ئەزه يولغا ھۇجۇم قىلىدۇ، شۇڭغۇن بىر تۈزۈمنىڭ قىممىتى ئۇنىڭ ئەڭ ئەزى قايتارۇش يولىنىڭ قىممىتىچە مەنئىلىك بولىدۇ — مەسىلەن، ئېسىدىن چىقىپ كېتمەيدىغان بىر پאַسسىۋاق، بۈتۈنلىكنىڭ قىممىتىنى ئۇ پאַسسىۋاقنىڭ قىممىتىگە چەكمەپ قويۇۋېتىدۇ، ۋېرىپ قىلىنغان قۇر بولسا، "ھەمەن ۋاقىتتا ئېلىپ ئالدىغان، كېيىن ئەگىرەپ چىقىرىدىغان" ھۇجۇمچىنىڭ ئۆز ئالدىدا ۋاقىت تۇتۇپ، ئۆتلىك режимиدە تەركىلەپ تۇرىدىغان نەتىجەنىڭ ئۆزىدىر.
10.2 ئەھلىيەتلىنىش، رازىلىقتىن ئايرىلغان حالدا
Nostr دى
ئۇ 4-بۇلمىدا ئېلىپ باйтиلغان خەبارەرنىڭ نېمىنى ۋعدە قىلەلەيدىگەنلىكىنى بىر تەرەپتىن چەگىلەيدۇ. npub ۋە ML-KEM كىچىسى ئارا تۇزۇلغان مۇناسىۋەت secp256k1 ئىگىزىلىشى بىلەن تۇزۇلغان، شۇڭغا ئىگىزىلىشنى تەزىرىكلىمەك ئىمكانىيەتكە ئىگە بولغان رەقسىپ، ئۆز كىچىسىنى ئالماشتۇرۇپ قالىشقا قايرىلىدۇ. كەلگۈسى رەقسىپكە قارشى سىر تۇتۇش بىلەن رەقسىپكە قارشى ئەسلىيەتنى تۇتۇش بىر خىل دەلمەس.
10.3 مېتا داتا
ھەدىە قاپلىتى يەڭگۈچىنى يوشۇرۇپ قۇយىدۇ، قەبۇل قىلىنىچى بىر تək... دىن تاشقىرى. p تاگ، ئۇنىڭ تۈرى ۋە ئىچكى مەرسۇمنىڭ ۋاقىت بەلگىسى. ئۇ ھادىيە باردۇغىنى، ئۇنىڭ ئۆلچىمىنى ياكى رېلېي ئۇنى قايتىمۇ ۋاقىتتە قەبۇل قىلغانلىقىنى يوشۇرمايدۇ. ترافىك تەھلىللىۋېلىشنى بۇ تەرخىمېنىڭ ھېچقانداق قىسمى ھەل قىلمايدۇ.
10.4 ئۆتۈرۈشلىك مېش
Nymchat-نىڭ Bluetooth mesh تېخنىكىسى ئۆزنىڭ تېخلىمىگە (handshake) ئىگە بولغان ئөзلىكتىن سىپەتلىك بىر پروتokol بولۇپ، بۇ ئىشنىڭ كېلىۋىلىشىگە كىرمەيدۇ. Mesh ئارقىلىق يەتىلگەن خاتتاتلار كلاسسىكىدىر.
10.5 بېچىمەلەر ئالدىن يөرتىلىپ بولۇنغان
بىر تەرەپ تېخىمۇ كلاسسىكىيlik تۈرىدە بولغان ۋاقىتتا قسىلدىغان شىفرە ئۇچۇرى ھەمىشە كلاسسىكىيlik تۈرىدە قالىدۇ. ئۇ ئالدىنكىدىن بار بولغانلىقى ئۈچۈن قايتىدىن تۈزۈلۈش مۇمكىن ئەمەس. قوغداش، ئىككى تەرەپنىڭمۇ پۇست-كۋانتۇم ئاھلانلىرى بار بولغان ئۇچۇردا باشلىنىدۇ، بۇ خىزمەت ئۆتكىزۈلۈش ۋاقىتىدا ئەمەس.
11كۆزگە alındىغان متبادل ئۇسۇللار
| يېقىلاش | نېمەڭ بولمايدۇ؟ |
|---|---|
| ئىدەنتىتلىق كېيىدىن پۇست-ۋانتىم كېيىنى كېلىپ چىقىرىڭ. | رد قىلىندى. nsec ئۈستىدىكى تۇزۇملەش ئامما قىلىنغان بىرอัลگورىزم، ۋە كوانت رەقيبى يايىلىپ چىقىلغان npub نىڭ ئىچىدىن nsec نى قايتارپسۇ، شۇنىڭ ئۈچۈن كلاسسىكى يېرىمىنى بۇزۇش بىلەن كوانتتىكىدىكى يېرىمىنىත්ا بېرگەن بولىدۇ. ئۇ بۇ ماقالادكى ھەر قايسى تەڭسىتىش مۇammوسىنى ھەل قىلدى، ئەمما ھېچ كىمدىن ھىمىيەت قىلمايدۇ. 3.1-بۇլۇم. |
| تۈپنى NIP-44 ئارقىلىق پا ئلچىنىڭ باشقا قۇرۇلمىلىرىغا يەتكۈزۈپ يۈڭدىتىڭ | باشقا كىيىمدا بولسىمۇ، خۇددى شۇ سەباب بىلەن رەت قىلىندى. پەقەت كلاسسىك شىپىرلىشىش ئارقىلىق يۆتكىلگەن بىر كۆك (root)، ئۇ خەبارنى يېزىپ ئالغان ۋە كېيىنكى ۋاقىتتا ئۇنىڭ كاتتلىقىنى بۇزغان ھەر كىمە تەرىپىدىن قايتا تەڭىلىش مۇمكىن؛ بۇ ئاسلىدا كۆكنىڭ تۇتۇپ قالىش ئۈچۈن يارىتىلغان دۇشمانىدۇر. |
| ھەر بىر قۇراپلىقتا ئۆزلىكچە ياراتىلغان ML-KEM كىي جۈپتىسى | رەتلەنگەن. قۇرۇلمىلار ئەگزىپ (decapsulation) كىچىلىرىنى ھەرخىل تۇرىدۇ، ھەمدە ھەر بىر ئىدەنتىت ئۈچۈن بىر قايتا تاللانغۇچى خەبارنامە بۇرۇنۇڭ ھەممىسىنى كۆتەرەلمەيدۇ. تەراپداشلار ئاخىرقى تېشىلىپ چىققان كىچىلىگە قىپىرسلىغۇچى بولىدۇ، ۋە باشقا ھەر بىر قۇرۇلمى بۇ نەتىجىنى ئوناغۇلىشى مۇمكىن بولمايدۇ. ئىدەنتىتكى بىر تۈپ (root)، 3.2-بۇلمداگى يوللار ئارقىلىق يۆتكىلىشى، شۇنىڭ ئۆزى بۇنىڭ ئالدىنى ئالىدۇ. |
| ئاساسنى PIN ئارقىلىق قۇتاقتلاڭ | رەتلىگەن. پوشتۇلانغان قۇرۇمそۋىنى تۇرىدىغان ئۆتۈرۈكلىك ھۇجۇم قىلغۇچىغا قارشى، تۈرتلىك رەقەملىك پىن تەخմىنەن 13 bit تەك. ئۇنى ئىككى دانە 256-bitلىق يوللار بىلەن بىველەشتۈرۈپ سۆزلىۋەتۈش، ئەڭ جىلات پوشتۇنىڭ قەدىرىنى خەتا كۆرسىتىدۇ. |
| npub نى ئىككى تۇچىنى ئېلىش ئۈچۈن كۆپەيتۈڭ | 1,184 بايت ئۇچۇر كۆرسەتكۈچ بولالايدىغان ئۇچۇر ئەمەس، ئۇ 32 بايت دەپ بېكىتىلگەن ئەدەرسنى تاللىغان ھەر قانداق بار بولغان Nostr mijanلىرىنىڭ ئىشلىشىنى بۇزۇپ يөзگەن بولىدۇ. |
| مۇھىم dîrektoriya خىزمىتى | تورنىڭ قاچىرىش ئۈچۈن تۇرىدىغان ھۆكۈمىيەتنى قايتىشلارغا كېلىشتۈرىدۇ. قidirۇشنى جاۋابلىغان كىشىمۇ خەتنى كىم ئوناچى ئوناچى تۇرىلىدىغانلىقىنى بېلگىلىەيدۇ. |
| ھەر بىر خەبارغا كљуچنى تەگىلدىرىڭ | Hech narsäni hal etmeydi: yollouchi ... ni kerak. ئالىجىنىڭ بىرىنچى خەبارىدىن بۇرۇن تالغۇچ، بۇ ئەسكەن ئەھۋالغا تۇشقۇلىق قىلىدۇ، چۈنكى ئۇنى كېلىشتۈرىدىغان ئالدىنكى خەبارىنىڭ يوق. |
| باند ئىچىدىكى قَابِلِّىيەت مۇزאַكەرىسى | سۈرۈمنى پىسەندىرىش يۈزىسىنى يارىتىدۇ. قەدەملىك qobiliyet baychaqنى ئاللىپ تاشلىي ئاللىمىچىلىك قىلغان ھۇجومچى كلاسسىك يോْلنى مەلجۇر قىلىدۇ. |
| كوانتىدان كېيىنقىلا، klassىكى قىسمى يوق | secp256k1 نىڭ ئۆتكىنچەلىك تەھلىللىرىنى بەرحەت يېڭىراق بىر ئاساسلىق قۇرۇلمىغا ئالماشتۇرۇش ئۈچۈن چاكلاپ تاشلايدۇ. ھەملىكلىك پەقەت ئەگەر... ھەر ئىككىلىسى مۇۋەپپەقىيەتسىزلىق. |
12ئىجراگىچىلىق تەڭلىكى
Nymchat بۇ قۇرۇلمىنىڭ ئىككى مۇستەقىل ئىجرا قىلىنىشىنى يەتكۈزۈپ بەৰেدۇ — بىرى ۋেব应用程序ىسى ئۈچۈن JavaScript تىلىدا، يەنە بىرى مۇبایلىك应用程序ىلار ئۈچۈن Dart تىلىدا، بۇنىڭ ئىچىدە نولدىن يېتىلگەن ML-KEM-768 پورتى بار. بىر خىل پرىمىتىۋنىڭ ئىككى خىل ئىجرا قىلىنىشى ئادەتتە خەتەرلىك بولىدۇ، شۇڭغا ئۇلارنىڭ ئورتاقlaşقۇچ بولۇشىغا ئىشەنچلىك بولۇش ئارىسىغا قارىغاندا، ئۇلار بىرىنى بىرىگە قارشى تەكلىللىنىپ تەكشىرىلىدۇ.
Dart ML-KEM ئىجرا قىلىش نۇسخىسى رەسمىي [نۇسخىمۇغا] قارىشلىق تەكبىيللىنىدۇ.
NIST ACVP
ML-KEM-768 ئۈچۈن مەلۇم جاۋاب تەستلىرى (ML-KEM-*-FIPS203) — 25 كېي تۈزۈش (key-generation)، 25 پېكىتلىشىش (encapsulation) ۋە 10 پېكىتلىشىشنى يېچىش (decapsulation) كېسىسى، ئۇلار ئۆزلىكىدىن بىر سۆۋېت (suite) قىلىپ يۈرگۈزۈلىدۇ. بۇلار NIST تەرىپىدىن بىر ئىجرا قىلىنغان تىزىملىكنى تەكبىيللىتىش ئۈچۈن يايىلىدغان ۋېكتۇرلار (vectors)، شۇڭا ئۇلارنى مۇۋەپپەقىيەتلىك ئۆتۈش، پەقەت ئىدۋان تەرەپلەرنىڭ ئالاقە قىلىشىنىڭ ئىپتىھاسىلا ئەمەس، بەلكى پورتنىڭ تېگىسلىگىنىڭ ئىپتىھاسىدۇر. بۇنىڭدەن يىغراقىدا، سېلىشتۈرمە ۋېكتۇرلارنىڭ ئورتاق قۇرالى — تۈپۈر (seed) تۈزۈش، پېكىتلىشىش، ئىككى تۈرلىك پېيْلۆد فورماتى ۋە تولۇق قۇرۇلمىشلار — JavaScript سارىھىتىدىن (reference) تۈزۈلۈپ، ھەممە سۆۋېتتەر تەرىپىدىن تەكبىيللىنىدۇ. تۈپ سىر (root secret) بۇ قۇراလျغا ئالماشتۇرۇش ئەمەس، بەلكى ئۇنى كۈچەيتىدۇ: تۈپتىڭ تۈپۈرگە، تۈپتىڭ ئېلىش-بېرىش جۈپتىسىغا ئېلىپ بارىشى، تۈپنىڭ ئەگەرلىك ئىزى (public fingerprint) ۋە تۈزۈلگەن كېي، نۆنس (nonce) ۋە تەكلىپ قىلىنغان تۈۋكى قۇرۇلمىشلار ئۆزلىكىدىن ۋېكتۇرلاردۇر، شۇڭا ئىدۋان تەرەپلەر نېمە...
nympq1… كود، خەبارنىڭ بېسىلغان بايتلىرىنى ئانلىماقتا بولىدۇ ياكى ئۇلار ھəkكىدە. ئىككى ئىملېمېنتاتىيەنىڭ ئورتاقچىلىقىدىكى ئالگۇ ي向きش، باشقا كليယەنت ئېچەلمەيدىغان خەبارنى يەتكۈزۈش ئۈچۈن ئەمەس، بەلكى قۇرۇلمىنى (build) توختاتىدۇ.
بۇلار ئارا ئىپتىكا (fingerprint) نىڭ ئالماسىنى بەلگىلىش مۇھിملىك قىلدۇرىدۇ. ئۇ قۇرۇلمىغا «بۇ مەن تۇتۇپ تۇرغان تۈپكى» ۋە «بۇ باشقا تۈپكى» دەپ ئايرىمەڭ ئېلىپ بېرىدۇ. باشقا مۇلازمەننىڭ ئىپتىكاسını قايتۇرالمايدىغان مۇلازمەن، مۇكەممەل بولغان بىر قېلىپنى ھەرخەم يوق دەپ كۆرسىتىدۇ — سۆنگىدە، 3.3-بۇلمغا ئاساسلانغان حالدا، ئىككىنچى تۈپكىنى يېرىپ چىقىپ، ئىزبەتنى بۆلۈپ يۈرۈتۈپ يۈرىدۇ. ئۇ خۇدۇ شۇ سەۋەبلىكتىن ئېتىبارەن بىر ۋېكتۇر (vector) ھەرىكىتىدۇر.
Nymchat ... دىر. ئاچۇق مەنبىلىك AGPL-3.0 تاللىقلىرى ئاستىدا. بۇ يەردە تەسۋىرلانغان kriptografik ئاساسلىق قىسى...
js/nym-crypto.js ۋە js/modules/pq.js ۋېب كلىئىنتتا، ۋە
lib/core/crypto/ بىلەن lib/features/identity/pq_registry.dart مۇبایلىك ئىشتىيانلاردا.
قىسقاقىraq، تېخنيك بولمىغان تۇشىنىش ئۈچۈن ... نى كۆرۈڭ كوانتۇمغا قارشىلىق شەپقىلىق ھەققىدەكى بىلىملەر قۇرۇمى بەجىسى.