Nymchat ቴክኒካዊ ኋይትፓፐር
ድሕሪ-ኳንተም ናይ መፍደጊ ስምምነት ኣብ Nymchat
የML-KEM-768 ህሉሓዊ ቁልፍታት መዝገብ ወይ መዘኻኸሪ ዘይብሉ ኣብ Nostr ምልኣው፣ ከምኡ ድማ ዝኾነ ህሉሓዊ ዋጋ ዘየገለጠሉ ምስጢራዊ ነገር መሰረት ምግባር።
ናብ መተግበሪ መልእኽታ (messenger) ናይ ፖስት-ኳንትም መለዋወጢ መፍጠጥ ምውሃድ ብብዝሒ ናይ ክሪፕቶግራፊ ጸገም ኣይኮነን። እቶም መሰረታዊ ኣካላት (primitives) ደረጃ ተኸታተሊ እዮም፣ እታ ድማ ነቶም መሳርሒታት (libraries) ኣለዉ። እቲ ጸገም ግን፡ ኩሉ ተሳታፊ ሕጂ ሓደ... ካልኣይቲ ሕታዊ መደብ (public key)፣ ከምኡ እውን ዘይተኣከለ መረብ (decentralized network) ክትዎ ተፈልዩ ቦታ የብሉን። እዚ ጽሑፍ እዚ Nymchat ነዚ ከመይ ጌሩ መልሲ ከም ዝህብ ይገልጽ — እቲ ካልኣይ ሕታዊ መደብ ካብ ኣበይ ከም ዝመጽእ፣ ከመይ ጌሩ ድማ ናብቶም ዘድልዮም ሰባት ከም ዝብጽሕ፣ ከምኡ እውን እቲ ኣነርፊ (interface) ብዛዕባ እቲ ውጽኢት እንታይ ክብል ከም ዝፍቀደሉ — ከምኡ እውን ኣብቲ ናይ መወዳእታ ክፋል፣ እቲ ውጽኢት እንታይ ከም ዘይከላኸለሎ።
እዚ ገጽ ንመመላእታ ብማሽን ዝተተርጎመ እዩ። እቲ ናይ እንግሊዝኛ ኦሪጅናል እቲ ዝምልከቶ ስሪት እዩ።
1እቲ ጸገም
ናይ Nostr ምስጢራዊ መልእኽታት ብ... ተሓዲጎም ኣለዉ። NIP-44 ዝብል ጽሑፍ ኣሎ።, ክልልቲ ክልልቲ ክትፈላለይን ዝኽእሉ ክልተ ክፋልታት ዘለዎ። እቲ plaintext ዘደባለቕ ዘሎ ክፋል — ChaCha20 ምስ HMAC-SHA256 ታግ (tag)፣ ብ... ተKeyed ዝተገብረ HKDF (RFC 5869) — ብኳንተም ኮምፒተር ብቐረባ ዓቢ ስግኣታ ኣይትቕመሙ እያ፤ ኣልጎሪዝም ግሮቨር ኣብ ሲሜትሪክ ምክልኻል (symmetric key) ስኩዌር-ሩት (square-root) ናይ ፍጥነት ዕብየት ዘፍጥር ኮይኑ፣ 256 ቢት ድማ ነዚ ይቋቋሞ ኣሎ። እቲ እግዚኣ... ተሰማማ ኣብ ቁልፊ እዩ ኤሊፕቲካል-ከርቭ ዲፊ-ሄልማን ኣብ secp256k1፣ን ኣልጎሪዝም ሾር ነቲ ዲስክሪት ሎጋሪዝም ብቐጥታ ይፍቶ። ሓደ ናይ ግልChi ቁልፊ ካብቲ ኣታዊ ተመሳሳሊኡ ብምልዓኽ፣ እቲ ቁልፊ ዝፈጥሮ ኩሉ ዝተጋራሃ ምስጢር ናብ ኋላ ይገልጦ።
እዚ ዝፈጥሮ ስግኣት፡ ከምቲ ከምዚ ዓይነት ማሽን ክምረት ክጸበየ ኣይኮነን። መኽዘን ዘለዎ ተጻውቲ ሎሚ ምስጢራዊ ጽሑፍ (ciphertext) ክሰፍርን፡ እቲ ዓቕሚ ምስ መጸ ድማ ክፈታቶ ክኽእል እዩ። ሕጂ ዝተሰቴ ነገር፡ ምስኡ ምስ ተዛዘነት ገና ኣገዳሲ እንተኾይኑ፡ ድሮ ተሰሪሑ ኣሎ ማለት እዩ። እዚ፡ ፖስት-ኳንተም ቁልፊ መለዋወጢ (post-quantum key exchange) ዝከላኸለት ፍሉይ ጥቃት ኮይኑ፡ እዚ ድማ እቲ ስራሕ፡ እቲ ማሽን ክፍጸም ክጸበየ ዘይክእልሉሉ ምኽንያት እዩ።
1.1 እዚ ጽሑፍ እዚ ዘትመልሶ ሕቶ
እቲ መፍትሒ ብዝርዝር ዝተረዱ እዩ፦ ምስቲ ናይ ጥንታዊ መለዋወጥ (classical exchange) ጎንlæ ድሕረ-ኳንተም መሰረታዊ መክፈቲ መደበኛ (post-quantum key encapsulation mechanism) ምትጥንት ምግባር፣ ስለዚ እውን ሓደ ዘንጠልፍ ሰብ ዝኾነ ነገር ንንባብ ክልቲኦምን ክመስርሖ ኣለዎ። Nymchat ML-KEM-768 ይጥቀመ (ፊፕስ 203). እዚ ብቕጽበት ናይ ምቕፋል ጸገም የትበል እዩ፦
ንኣሊስ ሎሚ መልእኽቲ ንምስላፋ ሓደ ነገር የድልየካ፦ npubኣ። ፖስት-ኳንተም መለዋወጥ እንተተሓሓዘ ድማ፡ ካልኣይ ነገር እውን የድልየካ እዩ — ናይ ML-KEM ህለዊ ቁልፊ። እቲ ቁልፊ ኣበይ ይነብር? ንመላእኽታ ቅድሚ ምልኣክኸ ከመይ ኢኻ ክትረኽቦ ትኽእል?
ን npub ብርኡሳናውይ ዝተሓዘ እዩ። ኣብ ወረቐት ክትጽሕፎ፣ ብድምጺ ክትቅራእዎ፣ ወይ ካብ ስክሪን ክትስካኑ ትኽእል፣ ንዓኻ ክቐትፎልካ (encrypt) ዘድልዮ ኩሉ እዚ እዩ። ናይ ML-KEM-768 public key 1,184 bytes እዩ። ብድምጺ ክቕራእ ኣይክእልን እዩ፣ ኣብ username ክኣትት ኣይክእልን እዩ፣ ከምኡ እውን ምስ 32 bytes ጥራይ ዘሎ identity ኣብ QR code ክሓደር ኣይክኣልን እዩ።
መጠን እ ቀሊል ክፍሊ እዩ። እቲ ዘጸገም ክፍሊ ግን፡ ሓደ ካልኣይ ቁልፊ ሰለተ ዝተፈላለዩ ጸገማት የፍር፣ እቲ ተረፈ እዚ ጽሑፍ እዚ ድማ ብብዝሒ ንሳቶም መልሲ ክኸውን እዩ፦
- ክትተክእል ትኽእል እያ። ዝኾነ ሰብ ብቕጽበት ክምንበቦ ዘይክእል ቁልፊ፣ ተወሳሲ ንርእሱ ንዝኾነ ካልእ ቁልፊ ዝቕይሮ ዓይነት ነገር እዩ። ኣንቀጽ 4 ምስቲ መንነት ብፈርማ ብምእሳር፣ ነዚ ብፍታሕ ይፈቱ።
- ኣብ ኣባላዕ መሳርሒታት ተጠቃሚ እቲ ተመሳሳዕነት ክህልዎ ኣለዎ። ኣብ ስልኪን ላፕቶፕን ዘሎ እቲ ሓደ ኣካውንት እቲ ሓደ መሪሕ (key) ክቕርብ ኣለዎ፣ እንተዘይኮነስ ንሓደ ዝተዓሰሩ መልእኽትታት ኣብቲ ካልኣይ ክኽፈቱ ኣይክእሉን እዮም። ዓንቀጽ 3.2 ነዚ የብራህሎ።
- ክጠፍእ ይኽእል እዩ። እቲ ሕዳጋሽ ቁጽሪ ካብ ምስጢር ዳግሚ ይትረፈረፍ፣ ስለዚ ዘድልዩ እቲ ምስጢር ጥራይ ክቕጽል እዩ — ብመልክዕታኡ ድማ ካብኡ ዝበለhi ኣይትስራሕን ይ። ዓንቀጽ 10.1 ክሳብ ክንደይ ዋጋ ከምዘለዎ ብግልጺ ይገልጽ፣ ምኽንያቱ እዚ ዘሎ ነገር ዝተፍታሕ ንበጃኡ ብዋጋ ዝተኸፈል እዩ።
2ናይ ዲዛይን ገደብታት
ኣርባዕተ ገደብታት መልሲኡ ኣዳልዩዎም፣ እዚ ድማ ዝኾነ ኮድ ቅድሚ ምጽሓፍ መብዛሕትዮም ግልጽቲ ዲዛይናት ኣወገዶምዎም።
- ብዝተኽበል መጠን ጥቂት ምስጢራት። ናስትር (Nostr) ተጠቃሚታት ድሮ እዋን ጥራይ ሓደ ምስጢር ይፍጥኑ፣ እሱ ድማ እቲ nsec እዩ። ዝተወሳኺ ምስጢር እያዊት ካልእ መገዲ ንታሪኽኻ ንምጥፋእ እዩ፣ ከምኡ እውን እቲ nsec ንምሕላው (back up) ዝፈልጥ ሰብ ካልእ ነገር ክሕዝ ከም ዘይክእል ይኸውን። ኣንቀጽ 3.1 ከም ዘርእዮ፡ እዚ ብቀጥታ ክሳብ ምልእመት ክግበር ኣይኽእልን እዩ — ካብ እቲ nsec ዝመጸ post-quantum key ምንም ዓይነት post-quantum ጥበቃ ኣይህብን እዩ — ስለዚ እቲ ዲዛይን ሓደ ምስጢር ጥራይ እዩ ዝጥቀመሉ፣ ዝተወሳኺ ድማ ኣይጥቀመውን እዩ፡ ሓደ ጥራይ ናይ ቁልፊ መገዲ (key material)፡ ንሓደ መንነት (identity) ሓደ ግዜ ጥራይ ዝፍጠር፡ ከም እቲ nsec ተመሳሳሊ ቅርጺን ኣብቲ ተመሳሳሊ ቦታ ዝቐመጠ፡ ስለዚ ሓደ ክሕዝ ዝፈልጥ ሰብ ካልኣውን ክሕዝ ከም ዝኽእል ንክኸውን። ኣንቀጽ 10.1 እዚ ገና እንታይ ዋጋ ከም ዘኽፍል ብትኽክለኛ ዘርእይ እዩ።
- ስልጣን የለን ዝያን ቁልፊ ንከመይ ዝኾነ ሰብ ከምዘሎ ንምብላዕ ዝተኣመን ሰርቨር የለን። ከምዚ ዝኣየ ሰርቨር ድማ መልእኽቲታት ዝተላዕክዎም ዝኾኑ ነጥብታት ይኸውን።
- ብዙ መሳርሒታት፣ ሓደ መንነት። ሓደ መታወቒ Nostr ብብዙሓት ክላይንትታት ብሓደ እዋን ይጥቀመሉ ኣሎ። ዝኾነ መሳርሒ ቁልፊ እንተሃልዩ ኣብ ኩሎም ተመሳሳሊ ክኸውን ኣለዮ፣ እቶም ነቲ ቁልፊ ዘዊርዋ መገድታትን እቲ ባህሪ ዝከላኸለሉ ተጻራፊ ክርእዮ ዘይክእል ክኸውን ኣለዮ።
- መደራደር የለን። ኣብቲ ዝፍጸም መለዋወጥ "ንድፈ-ሃሳብ (ciphers) ኣየናቶም እትደግፎም?" ዝብል ዝተሓዘ ዝኾነ መለዋወጥ፣ ኣጥያቂ ንደቀቅቲ ምርጫ ንምጥቃም ዝኽእል ዕድል እዩ። እቲ ንድፈ-ሃሳብ ናብ ዝደቀያየ ደረጃ ዝቕያር ምንም ዘይብሉ ክኸውን ኣለዎ።
3ሓደ ነጻ መሰረት ምስጢር
እቲ ቀንዲ ውሳነ እዩ ML-KEM decapsulation key ካብ ዝኾነ ዓወታዊ ዋጋ ዘየፍለጦ key material ዝመጸ ምዃኑ። ነፍሲ ወከፍ መገለጺ (identity) ሓደ root secret ይረኽብ፣ እቲ ድማ ሓደ ግዜ ጥራይ ዝተፈጥረ እዩ፦
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)
እቲ root ንተጠቓሚ ዝቐርብ ከምቲ nsec ዝቐርብ እዩ፦ ቤች32 ብንሰብ ዝርድኦ ቅድመ-መጠራ
nympq, ከኡ ድማ ከምዚ ይብሃል nympq1…, ኣብ ስክሪን መታወቂያ ምስቲ nsec ጎባэ ዝቐረበ፣ ብተመሳሳሊ መገዲ ምልላይ ዝቐረበ፣ ብተመሳሳሊ መገዲ ዝኮፒ ዝግበር፣ ፈጺሙ ዘይተመዘገበ ከምኡውን ብግልጺ ናብ ኣበየቱ ዘይተላእከ እዩ። መፍቶሒ ኣይኮነን፣ መግቢያውን ኣይኮነን። ልክዕ ከምቲ nsec ተጠቓሚ ክሓዝዎ ዝኽእል ናይ ቁልፊ መረጃ እዩ።
እቲ salt ብታብነት ብዶሜይን ተለይዩ ኣሎ፣ ስለዚ ዝኾነ ካልእ ምስጢር እቲ ተመሳሳሊ ጥንዲ መ клюች ክመዘዝ ኣይክእልን እዩ። እቲ epoch ተቓውሞ መዞር ይኣንቀሳቕስ (ክፍሊ 9)
3.1 ቁልፊ ካብ መሰረታዊ ቁልፊ ስለምን ክመመንጭ ዘይብሉ
እቲ ግልጽ ንድፍ እቲ ተጠቃሚ ድሮ ካብዘሎ ምስጢር keypair መሰረት ምሃብ እዩ፦
seed = HKDF(salt = "…", IKM = nsec) // do not do this
ብኣርባተ ሓቂታት ዝተሰሓበ ኮይኑ ይረክብ፦ ሓድሽ ነገር ንምድጋፍ ዘይብሉ፣ ምኽንያቱ እቲ nsec ብባህሪኡ እቲ መደገፊ ስለዝኾነ፤ ኩሉ መሳርሒታት ብመሰረት ህንጻኡ ዝተሰማምዑ፣ ዘይተኸበደ ናይ ምልማድ (synchronization) ፕሮቶኮል ዘይብሉ፤ ንነዊሕነት (identity) ዝኸውን ሓደ ዝተለዋወጥ መግለጺ ብግቡእ ዝኾነ፣ ምኽንያቱ መሳርሒታት ብዛዕባ መፎቆሪ (key) ክተፈላለዩ ስለዘኽእሉ፤ ከምኡ እውን መፎቆሪ (key) ቅድሚ ምልዓሉ ምልዓሉ ስለዝኾነ፣ ክለይንት (client) ኣብ ቀዳማይ ኣጠቓቕማኡ ሓደ ነገር ንርእሱ ክሕብኦ (seal) ከም ዝኽእል እዩ።
ኩሎም ኣራቱ ተረባሕታታት ብሓደ ምኽንያት ዋጋ የብሎምን እዮም። ኣብ ዝተጋለጠ npub ዝተመርኮሰ ናይ Shor ኣልጎሪት፡ እቲ nsec የሃብ። እቲ seed derivation ኣብቲ nsec ዝተመስረተ ኣፋንዮ ኣልጎሪት እዩ። ስለዚ፡ እቲ ክላሲካል ഭാഗ ዘፍረስ ሰብ፡ ኩሉ ሰብ ዝጥቀመሉ ተመሳሳሊ HKDF ብምጥቃም፡ እቲ post-quantum ഭാഗ እውን ዳግሚ የሃገጽ። ንharvest-now-decrypt-later — እቲ እቲ ባህሪ ክከላኸሉሉ ዘለዎ ጥንካሬ — ብእዚ ኣገባብ ዝመጸ ቁልፊ ምንም ዘይተፈላለየ ነገር ኣይተወሳኺትን እዩ።
መፍታሒ ቁልፊ ML-KEM ካብቲ ካብ nsec ክትረድእ ዘይኽእልን ብመድረኽ ጥራይ ዝተገብረ ኣተሓባይነት ተላኺሑ ዘይመላለሰን እንትሮፒ ክመጽእ ኣለዎ።
እታ ካንደኛ ዓንቀጽ እታ ሕጊ ከቀዳማትety ብዝጌራ ተሰርሊት እያ። ብራሳኻ ዝተፈጥረ ምስጢር ወይ ኣብ ውሽጢ መደበኛ NIP-44 መልእኽቲ ኣብ መንጎ መሳርሒታት ተጠቃሚ ዝተሰማሰሐ፣ ተወሳኺ ስጉምታት ዘለዎ ተመሳሳሊ ውድቀት እዩ፦ ተንኮሳዊ ሰብ እታ መልእኽቲ ሎሚ ይመዝገበላ፣ ድሕሪኡ ድማ ነቲ መደበኛ መፍቀዲ (classical key) ይረኽቦ፣ እዚ ድማ መሰረታዊ ምስጢር (root) ክወድቕ ይገብሮ። ስለዚ እዩ ኣብቲ ቀጻሊ ክፋል ዘለዉ መገድታት ከምቲ ዘለዉ፣ ከምኡ እውን ካብቶም ኣበይውን "ናብ ካልእ መሳርሒኻ ስደደሉ" ዝብል ኣይብልን።
3.2 Root ናብ ካልኦት መሳርሒታት ተጠቃሚ ምእታው
መስፈጢ 3 ክፋል 2 — ሓደ መንነት፣ ብዙሓት መሳርሒታት — ኣብዚ ብሂሳዊ ኣገባብ ክፍጸም ኣይክእልን እዩ፣ ምኽንያቱ ዋና ዕላማኡ ቁልፊ ንዝኾነ እቲ መሳርሒታት ዝ공ያዐዮ ነገር ዝተመስረተ ኣይኮነን ምዃኑ እዩ። ኣብ ምልዋጥ ክፍጸም ኣለዎ፣ ን ድማ ሓደ ጥራይ መገዲ ኣላ፦ ተጠቓሚኡ እቲ... የንቀሳቕስ nympq1… ርእስኦም ኮድ ክጽሕፉ።
እቲ መሰረት ከ... ተርኢዩ nympq1… ከnsec ጎኒት፣ን ኣብቲ ተመሳሰልቲ ፓነል ተተሓሒዙ ዝቕበሎ ካልኣይ መሳርሒ። እዚ ናይቲ ምሉእ ሜካኒዝም እዩ። ኮድ ዘይተዋህበሉ መሳርሒ ክትሳተፍ ኣይክእልን እዩ፣ እዚ ድማ ኣብ ርትዓ 4.2 ተገሊጹ ኣሎ።
ብሰብኣዊ ዝግበር ምልዋጥ፡ ከቀዳማይ ስጉምቲ ይልቅ ሆንናዊ መሰረት እዩ። ኣብ ዓንቀጽ 3.1 ዘሎ ሕጊ፡ መሰረቱ ብclassical ምስጢራዊነት ጥራይ ፈጺሙ ክመሰጉር ከም ዘይክእል ይብል፤ እዚ ነገር እዚ ኣውቶማቲክ ዝገብሮ ኩሉ ኣሰራርሓ — ብrelay ምስራብ ወይ ምስ መለያ ቁልፊ ምልዕል — ነዚ ሕጊ እዚ ብቐጥታ ይጥል እዩ። ተጠቃሚ ዝገብሮ ስጉምቲ፡ ምክልኻል እቲ ናይ ሓቂ ምዃኑ እቲ ምኽንያት እዩ።
እቲ ቅርጺ ንሓደ ዝተሓዋየ መገዲ (wrapped path) ቦታ ዓሪፉ ኣሎ፦ ሓደ ሬኮርድ ዝተሓዋዩ ዝርዝር ክሓዝ ይኽእል እዩ፣ እትሰብአ እያ እትኮኑ AEAD blob ኣብ ትሕቲ ተጠቃሚ ኣብ ካልእ መሳርሒ ክመልሶ ዝኽእል ቁልፊ — ንኣብነት ኣውጽኢት passkey PRF። ሎሚ ዝኾነ ነገር ዝሓዘ ኣይወጽእን ኣሎ፣ ንሓደ ነገር ክመጽእ ክሳብ እያ፣ እቲ nympq1… ኮድ እዩ
ብዘለወር መገዲ ጥራይ።
ኣንቀጽ 10.1 ክሳብ ክንደይ ከም ዝኸፍል ይገልጽ ኣሎ።
እቲ መዝገብ ብባዕሉ ኣብ ናቱ ናይ ኣሰራርሓ መደብ ይርከብ፣ nymchat-pq-root, ከኣ ከምቲኦም ካልኦት መደብታት ይተሓባባር። ምንም ዓይነት 'wraps' ኣይትሰሓብን እያ፣ ዘድሊ ስራሕ ይገብራል፦ ካልኣይ መሳርሒ እታ መለያ ድሮ መበገሲ ከም ዘለዋ ዝፍለጥ ብኣብነት ዘለዋ እዩ፣ እዚ ድማ ተኳሃሳቢ ሓደ ክፈጥር (mint) ዝኽእል ኣይከኣለን (Section 3.3)።
እቲ nymchat-pq-root ዓውዲ ክኸውን ኣለዮ ዘይኮነ ብroot-ዝመጸ ML-KEM ቁልፊ ክሕሰር እዩ። እቲ ሰንጠራ እቲ ጥራይ እቲ root ዝሓዘ እዩ፣ ስለዚ እቲ root ካብ ዝመጸ ቁልፊ ኣብ ትሕቲ ምቕታል ማለት ቁልፊኡ ኣብ ውሽጢ ሳንዱቕ ዘሎ መቆልፊ ማለት እዩ፦ ዝኾነ መሳርሒ ክፈትዎ ኣይክእልን እዩ፣ እቲ ዝጻሕፎ ዘለዎ መሳርሒ እኳ እንተኾነ። ብባህላዊ መንገዲ — NIP-44 ናብ ባዕሉ — ወይ ድማ ብፍጹም ኣይቕታልን እዩ። እዚ እቲ ንድፊ ጥራይ ባሕላዊ ጥበቃ ዝቕበልሉ ቦታ ኮይኑ፡ ክገብሮውን ይኽእል እዩ፦ እቲ ሰንጠራ ሎሚ root ኣይሓዘ እውን፣ እቲ root ከም ዘሎ ሓቂ ጥራይ እዩ ዝሓዘ።
ኩሉ ካልእ ዓውዲታት ኣተሓባይነት ካብቲ መሰረት ዝመጸ መራሒ ክጥቀሙ ይኽእሉን ክጥቀሙ ይግባእን ኣለዎም። እዚ ጥራይ እዩ እቲ ኣላእለታ፣ እዚ ድማ ብዛዕባ ምሉእነት እዩ እንጂ ብዛዕባ ጥንካሬ ዘይኮነ።
3.3 ምፍላቕን ምቕባልን
ምስ ዝጅምር፣ ዘይቕጽል መንነት ሒዞ፣ ክላይንት ኣብዚ ቅደምታ ይሰርሕ፦
- ዘሎ ነገር ፈልት
nymchat-pq-rootመዝገብ። - መዝገብ ተረኺቡ፣ እዚ መሳርሒ እዚ ድማ ክገልጾ ይኽእል እዩ። — ተቐበሎ፣ እዚ መንነት እዚ ድማ ከም ድሕሪ-ኳንተም ዝመሓላለፍ ከም ዝመጸ ኣእልፎ።
- መዝገብ ተገይዩ፣ እዚ መሳርሒ እዚ ክገልጦ ኣይክእልን እዩ። — ሓድሽ መሠረት ኣይፍጠር፣ ከምኡ እውን ዝኾነ ዓይነት ሓበሬታ ኣይገልጽ። ነቲ ተጠቃሚ እዚ መሳርሒ ንምምኻብ እቲ... ብምእታው
nympq1…ካብቲ ድሩብ ዘለዎ መሳርሒ ዝመጸ ኮድ። - መዝገብ የለን — ስሩ ክፈጥር፣ ነቲ ሪከርድ ሕብጸ፣ ኣውጅ፣ ከምኡውን ኣርእየ
nympq1…ኮድ ንተጠቃሚ ሓደ ግዜ ክዕርሶ ንምባል ስደደሉ።
ስጉምቲ 3 ስሕተት ክትኸብድ ዝተክእለ ስጉምቲ እያ፣ እዚ ድማ ቅደምታ ንነፍሲ ወከፍ መተግበሪ ዘይተረከቡሉ፣ ብኣቐዲምነት ዝተጻሕፈሉ ምኽንያት እዩ። ክልተ መሳርሒታት ነፍሲ ወከፍኦም መበገሲ (root) ክፈጥሩ ምስ ወሰኑ፣ ኣብ ትሕቲ ሓደ ኣካልነት ክልተ ገለባ ዘይተኣሳሰሩ መበገሲታት የፍርኡ፣ እዚ ድማ እዚ ቅደምታ ንምክልኻል ዝተገብረ ስሕተት እዩ።
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) ሓደ ክንታታይ ጥራይ ይሕዝ ማለት ኮይኑ፣ ስለዚ ዳግም ምልኣኽ ንቀዳማይ መግለጺ ኣብቲ ዝነበረ ቦታ ይትክት። ስለዚ ነፍሲ ወከፍ መገለጺ ሓደ ጥራይ ናይ ሕጂ መዝገብ ኣለዎ፣ እዚ ድማ 'key ኣሊስ ምድላይ' ካብ ዝተፈላለየ ዝርዝር ክመሰጋገን ዘለዎ ፈንዲ ክኸውን ከይበርሃ፣ ሓደ ጥራይ ግልጽ ዝኾነ ምልኣኽ ይገብሮ።
ፊርማ እቲ ዝ綁ክው እዩ። እቲ ኩነታት ብመለያ ቁልፊ ተቐፊዑ ስለዘሎ፣ እቲ «እዚ ቁልፊ ML-KEM ነዚ npub እዩ ዝተሓዘ» ዝብል መሰጋገሪ፣ ከምቲ npub ጥንካሬ ኣለዎ። ካልእ ቁልፊ encapsulation ምልዋጥ፣ ናይ secp256k1 ፊርማ ምዝርፊ የድሊ። እቲ ነዚ ክገብሮ ዝኽእል ዘጥላቕቲ፣ ምስ እቲ KEM ክተሓጐስ ኣይድልዮን እዩ።
ሓበሬታታት ይውደምኡ። ሰብዓ መዓልቲ NIP-40 ዝብል ጽሑፍ ኣሎ። ናይ ምጽዋት ግዜ፣ ኩሉ 24 ሰዓታት ዳግሚ ብዝቕርብ፣ ነቲ መዝገብ ብዛዕባ ዓሚል (client) ዝሓለፈ ሰብ ዘይኮነስ ንሕጂ ዝሰርሕ ሰብ ዝገልጽ ክኸውን የኽእል እዩ። እቲ መሰረት (root) ብፍጹም ኣይመጽወትን፤ ብዛዕባኡ ዝግበር መግለጺ ጥራይ እዩ ዝመጽወት።
ዝተቋረጸ ኣፋንቲ ከምቲ ቁልፊ ዘይሓዘ ኣፋንቲ ብልክዕ ይርአ፦ ተወሳስሮት መደበኛ NIP-44 ይድለዋሎም፣ እዚ ድማ ኩሉ መግቢ ክዕቅቦ ዝኽእል እዩ፣ ዓዲ ምስ መሊሱ ኣፋንቲ ምስ ገበረ ድማ ክላይንት ኣብ ቀጻሊ ምግጠም ናይ ድሕሪ-ኩዋንተም (post-quantum) ምልውዋጥ ይጅምር። ስለዚ ካብ ሰሙን ንላዕሊ ዝረኸበ ዝተቋረጸ ምዃን፣ ኣብቲ ናይ ምቁራጽ ግዜ ዝተላእኩ መልእኽትታት ዝተኣዘዘ ጥበቃ ይኣክል — እዞም መልእኽትታት ካብቲ ናይ ኩዋንተም ተቓውሞ ዘለዎ ይልቅ ብመደበኛ ኣገባብ ዝተሓጸወ እዮም — ካልእ ግን ምንም ዝኸፍል ኣይብሎን እዩ። ምልኣኽ ኣይጎድኣን እዩ፣ ዝተረኽቡ ነገራት ድማ ኣይከብዱን እዮም፣ ምስ ተመለሰ ድማ ዝኾነ ተግባር ኣይፋልን እዩ።
እቲ ዘይተመጣጠንነት ንመወዳእታ ዝሰርሖ ምኽንያት እዩ፣ ዘይኮነስ ብኣጋጣሚ ዝመጸ እዩ። ከምዚ ዘይብሎ እንተኾነ፣ ሓደ መዝገብ ነቲ ዝገልጾ መደብ ንላዕሊ ክነብር ይኽእል እዩ፦ ዝጸረየ፣ ዝተወሓሰ፣ ወይ ድማ መሰረቱ ዝተቐየረ መሳርሒ፡ ንዝኾነ ሰብ ዘይተረክብ መደብ ክኣተም ዝፍቱን ትእዛዝ ክሓዝእ እዩ፣ እቲ ብኡ ዚወሃዱ መልእኽትታት ድማ ኣብ ክልቲኡ ወገን ምንም ዓይነት ስሕታ ዘይተሓሰሰ ይጠፍኡ። ሰሙን እቲ ግዜ ይወሰኖ፣ እዚ ድማ መተላለፊታት ተጠቃሚታት ክፈልጦም ብምን 기다ሮ እተ መዝገብ ብባዕሎም ክፈትኑ ይፍቐዶም።
እቲ ቁልፊ መደብ ቅርጹን ይገልጽ። እቲ ሜዳ እዩ pk2...ንእቲ ቁጽሪ እምበር፡ ንጌጣ ኣይኮነን፡ እቲ ቁጽሪ እቲ ቁልፊ ምስ ዘገልግሎ ተረካቢ ቅርጺ (payload format) ዝገልጽ መጻፊት እቲ ውዕል እዩ። እቲ ክፋል ዘይፈልጦ ኣንባቢ "Nymchat client, no post-quantum key" ኢሉ ይ ውጽንን፡ ኩሎም ዝፍለጡ (logins) ክዕቅቡሉ ዝኽእሉቲ ንዘብናዊ NIP-44 ይሰድር። እዚ ናይ ስሕተት መራኸቢ ትኽክለኛ እዩ፡ እቲ ናይ ቅርጺ ቁጽሪ ምሉእ ዘሎ ንኽኸውን ዘድሊ ሕጊ ከምዚ ኢሉ ክቕመጥ ይግባእ፡ ዘይተፈልጦ ናይ ክእለት መግለጺ (capability claim) ጥበቃ ክኪኽሰር ይግባእ፡ ግን ምልኣኽ ኣይክሰርን ኣለዎ። ሓደ ጓዳይ ክጥቀመሉ ዘይክእል ቁልፊ ካብ ዘይምላኽ ቁልፊ ዝሕሰር እዩ፣ ምኽንያቱ እቲ ብዛዕባኡ ዝፍጸም መልእኽቲ ብዘይ ምንም ስሕተት ኣብ ክልቲኦም ወገናት ይጠፍእ።
4.1 ዘይምላእንነት ትርጉም ዘለዎ፣ ሰለስተ-ዋጋ ዘለዎ እዩ።
ንሓደ ኣዝዩ ዝለዓለ ግን ኣገዳሲ ዝርዝር፦ እቲ ሓበሬታ ብኩሉ Nymchat client ይፋጸም፣ ጥራይ ድማ እቶም ድሕሪ-ኩዋንተም (post-quantum) ክእለት ዘለዎም ዘይኮኑ፣ እቲ ኣሰታምቲ ቁልፊ ድማ ምርጫ እዩ። እዚ ድማ ክልተ ዘይኮኑ ሰለስተ ንክትልካዮ ዝኽእሉ ኩነታት የፍር፦
| ተዓዘበ | ማለት | ባህሪ ስደድ |
|---|---|---|
| ሓበሬታ ብቁልፊ | Nymchat, ድሕሪ ኳንተም ዝመሓያ | ተሓቡጥ |
| መግለጺ፣ ብፍጹም መሪሕ የብሉን | Nymchat፣ ብመደበኛ ጥራይ — ፖስት-ኳንተም ዘይብሉ፣ ወይ ድማ ምስ መሰረተይነት ዘይተኣጣቢ መሳርሒ። | ክላሲካል NIP-17 |
| መግለጺ የለን | ዘይተፈልጦ ዓሚል። ዝኾነ ተጠቃሚ Nostr ወይ Bitchat ክኸውን ይኽእል እዩ። | ከባዊ፣ ብተወሳኺ ተኳሃሃዲ መኽላኸሊ |
ሳልሳይ መስመር ምስ ኣራይ ምትሓባር ዓቢ ስንኪ ክኸውን እዩ። ከለቲ መለኮሲ (keyless) ዜና፣ እቲ ተልእኽቲ Nymchat ተጠቂሙ ምዃኑ ዘረጋግጽ ብትእምነት ዝተመዝገበ ሰነድ እዩ፤ እዚ ድማ እቲ መስመር ምልእኽቲ፣ ካብቲ ዘይፈልጦ ሰብ ንምርጋጽ ዘድሊቲ እቲ ዘይተረጋጊፀ ዓለም-ፕሮኮል መተዋውሲ (cross-protocol wrap) ክሰተት ይኽእል እዩ።
4.2 መሰረቱን ክፈትዎ ዘይክእል መሳርሒ ጸጥቲ ይቕጽል
እቲ ኣዋጅ ተተኪቶ ክኸውን ይኽእል እዩ፦ ንነፍሲ ወከፍ መንነት ሓደ ኩነት ጥራይ፣ እቲ ናይ መወዳእታ ዝተጻሕፈ እዩ ዝበለጥ። እዚ እዩ ነቲ ብሓደ መዝገብ ዝተመስረተ ንድፊ ከም ዝሰርሕ ዘኽእል፣ ከምኡ እውን ሓደ ዘይተኣሳሰርካ መሳርሒ ምስ ኣውፅኣ ሓደገኛ ከም ዝኸውን ዘደርጎ እዩ። ንርእሱ ዝተፈጥሮ ቁልፊ ብኣዋጅ ዘመልክት መሳርሒ፣ ነቲ ናይ ሓቂ መዝገብ የውድቅ እዩ፣ ከምኡ እውን ኩሉ ኣቻ መሳርሒታት ካብቲ ካልኦት ዘይክፈቱ ቁልፊ ተጠቂሙ ክጥልፉ ይግዳኦም።
ስለዚ፣ ሓደ ስርሕ ከም ዘሎ እትፈልጥ ግን ክትክፈቶ ዘይቅረባ መሳርሒ፣ ምንም ዓይነት ማስታወቂያ ኣይትገልጽን እያ። እቲ መሳርሒ ኣይተበላሸን ወይ ካብቲ መተግበሪ ኣይተእደብን እዩ፤ ነቲ ቁልፊ ዘለዋ መለክቲታት ገና ኣንበብቲ እያ፣ ከም መደበኛ ከኣ ትሰድድ እያ፣ ኣብቲ ግን ተጠቃሚኡ ንምእራብ ክሓትት እያ። ንነቲ ንመንነት ክዛረብ ዘይክእል መሳርሒ፣ ዝምታ እቲ ትኹን ባህሪ እዩ።
5ምርመራን ውሳነ ምልኣኽን
ዓቕላት መ Schlüኽ ኣዕዳት ብክልተ ኣገባብ ይፍለጡ። ቋሚ ምዝገባ ነቲ ተጠቃሚ ብሓቂ ዘተላለፈሎም ሰባት — ግልጽ ቆላብታትን ኣባላት ጉጅለታትን — የኽትትል፤ ስለዚ ኣፍልጦኦም ከም መደበኛ ክንዲታት ይደርሳሉ። ንኣይነት ኣዕዳት ለመባእታ ግዜ ዝተረኽበ፣ ሓደ ናይ መርመራ ተግባር ምስ ዘተላኸለ ይፍጸም፣ እዚ ድማ ኣብ 2.5 ሰከንድ ይወሰን፤ እንተሲኸ ኣይተፈታተነን፣ መልእኽቱ ናብቲ ቀደም ዝነበረ (classical) ኣገባብ ይምለስ፣ እዚ ድማ ቅድሚ "post-quantum" ዝተወሰደ ናይ ስህተት ኣገባብ እያ ዘይኮነስ፣ ቅድሚኡ ነይሩ ዘሎ ባህሪ እያ።
ሓደ ዘይተፈጸመ ውጽኢት ንሓሙሽተ ደቓቕታት እንጂ ንዘለኣለም ኣይሕዝንን። ሓደ ተጠቃሚ ሓድሽ መሳርሒ ምስ ኣጣበቐ፣ ወይ ካብ ብራውዘር-ኤክስቴንሽን ናብ ናይ ውሽጢ ቁልፊ ምስ ተመላልሰ፣ ኣብ መንጎ ምዝራብ ፖስት-ኳንተም (post-quantum) ክኸውን ዝኽእል ይኸውን፣ ከምኡ እውን፣ ንዘለኣለም ተሓዚኡ ዘሎ "ኣይፋልን" ዝብል ውጽኢት፡ ንእታ ሓበሬታ ዝቕጽል እዋን ክሳብ ክኸውን ኣብ ናይ ጥንትኛ ኢንክሪፕሽን (classical encryption) ክቕጽል ይገብሮ።
5.1 ስለምንታይ ናይ ደረጃ ዝቕንስ ኣጥያቂ ዘይብሉ?
ውሳነ መራኸታ ናብ ሓደ ጥያቄ ጥራይ ይረግፍ፦
pq = (we hold a signed, unexpired ML-KEM key for this recipient)
ዝተሰርዐ ንኽአሎነት ምፍታሕ፣ ዝድጋፍ ዝብል ኣልጎሪትም ዝርዝር፣ ከምኡውን ሓቲት ዝደኻን መገዲ ንምግዳድ ክጸረዮ ዝኽእል ዓንቀጽ የለን። መግለጺኡ ምሓዝ። እዩ መደራደር፣ ከኡ ድማ ተፈረመ። ናይ ውድቀት ኣመራርሓ ሓደ ዝተሓሰሰ ወይ ዘይተገለጠ ኣዋጅ፣ እቲ ድብልቅ መልእኽቲ ናብ ነገር ዝተመሰገገ ዝወርድ ምሳይ፣ እቲ መልእኽቲ ናብ ጥንታዊ ኣመራርሓ — ቅድሚ እዚ ባህሪ ዝነበረ ኩነታት — ዝተለዋወጠ ምዃኑ እዩ።
እቲ ተጻጋፊ እውን ይጸንሕ ኣሎ፣ ከምኡ እውን ዝበለጸ ኣገዳሲ እዩ፦ ዓሚል ሃይብሪድ ይሰድቕ ጥራይ ቁልፊ ምስ ሓዝሉ፣ ቁልፊ ምሓዝ ድማ ተቐባሊ ክፍታሕ ክኽእል እዩ ዝብል መርትዓዊ እዩ። ፖስት-ኳንተም መልእኽቲ ዘይቅራእዎ ሰብ ዝተላእከሉ ዝበለ ኵነታት የለን።
6እቲ ድብልቅ ኣሰራርሓ
Nymchat NIP-44 ኣይተክእልን እዩ። ንሱ ይሓልፎ እዩ። ዘይተቐየረ NIP-44 ciphertext ውሽጣዊ ንጣፍ ኮይኑ፣ ML-KEM keys ድማ ዙሪያኡ ዘሎ ውጫዊ 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 ciphertext ጥራይ እዩ ዝሃብ፣ ንኸፈቶ ድማ እቲ ጥንታዊ ECDH የድሊ። secp256k1 ዝሰባርኮ ኳንተም ተጻራፊ እቲ ውሽጣዊ ቁልፊ ይረክብ እኳ እንተኾነ ገና ML-KEM ይገጥሞ፤ ML-KEM ምስ ተሰባረከ እቲ ላቀ መደብ የ ገልጥ እኳ እንተኾነ NIP-44 ይቕጽል ኣሎ። ነፍሲ ወከፍ ኣৱ ግብታ ቦታኡ ይረክብ ኣሎ፦
kem_ssብባይታዊ ቅርጺ ጥራይ ቁልፍ ይፍጠር። ኣብዚ ምፍላጫ ዝኾነ ነገር ቀጥታ ውጽኢት ECDH ኣይነካውን እዩ፣ እዚ ድማ ዓንቀጽ 6.1 ዘየብ እዩ።kem_ct,recip_kem_pkንክልቲኦም መለይቲ ቁልፍታት ከም ተተሓሒዞም ዝተሓዛ መተሓሓዚታት (associated data) ተገይሮም፣ ስለዚ እቲ ውሽጠይቲ ንባብ ነቲ ነቲ ዝፈጥሮሉ ትራንስክሪፕት ብትኽክለኛ ይሓዝ። ሓደ ሲፈርተክስት (ciphertext) ምስ መለይቲ ካልእ ተመላኽኪ ምትሓባር፣ ምፍታሕ ከም ዝመስል እንተኾይኑ እኳ፣ ናይ ኣንነት ምርጋገጽ ይኸፍል።
ኢንካፕሱሌሽን ኣብ ኩሉ መልእኽቲ ሓድሽ ዝኸውን ይፍጸም። ቁልፊ ML-KEM ተቐባሊ ንብዙሕ ግዜ ዝጸንሕ እኳ እንተኾነ፣ ነፍሲ ወከፍ መልእኽቲ ሓደ ነጻ ሳይፈርት ቴክስት (ciphertext) ስለ ዝሕዘ፣ ስለዚ ድማ ሓደ ነጻ...
kem_ss. ናይቲ nonce ብዘይመጸ ምግባር ዘይኮነስ፣ ምውጻእ ጥራይ ተገቢ ከም ዝኸውን ዘገብሮ እቲ ነገር እዩ፦
ChaCha20-Poly1305
ና Pair (key, nonce) ዳግሚ ምጥቃም ብምግባር ይፍረስ፣ እዚ ኣብዚ ድማ ነቲ ቁልፊ ንነፍሲ ወከፍ መልእኽቲ ሓድሽ ስለ ዝኾነ፣ ስለዚ ዝኾነ Pair ክመደጋገም ኣይኽእልን እዩ።
6.1 ንብርኽቲታት ስለምንታይ ተፈላይሮም ከም ዝቕጽሉ
ካልእ ምርጫ ክልቲኦም ምስጢራት ኣብ ሓደ ናይ መወያያ መፈክሪ ምውሃድን ነቲ ናብ NIP-44 ምሃብን እዩ፦
ck = HKDF-Extract(salt = "…",
IKM = ecdh_x || kem_ss || …) // do not do this
እቲ መዋቅር ከም ክሪፕቶግራፊ እሙን እዩ። ሓደ ናይ መዋቅር ጸገም ኣለዎ፦ ይደልዮ
ecdh_x, ከቁልፊ መሳርሒ ኮይኑ፣ ውጽኢት ECDH ቀጥታ x-coordinate — ከምኡውን ብሮውዘር ኤክስቴንሽን (NIP-07 ዝብል ጽሑፍ ኣሎ።) ወይ ርሑቕ ተፈረሚ (NIP-46 ዝብል ጽሑፍ ኣሎ።) እቲ ዋጋ ፈጺሙ ኣይመልስን እዩ። ንዝሓተተ ወገን NIP-44 ይፍጽም ከምኡ እውን ciphertext ይመልስ፣ እዚ ድማ እቲ ቁልፊ እቲ ኣፕሊኬሽን ክደርሰሉ ዘይኽእል ቦታ ክሓዝቦ ዝተገብረሉ ቀንዲ ዕላማ እዩ።
ምስጢራት ምትሓሓድ ስለኮ እቲ መለኸታዊ ቁልፊ ኣብ መፈረሚ ዘሓዘ ዝኾነ ዓይነት ምእታው የውግዕ፣ እዚ ማለት ኣዝዮም ጥንቃቐቲ ዝኾኑ ተጠቃሚታት ማለት እዩ፣ ዝኾነ ዓይነት ስራሕ ኣብ ቁልፊ ምፍላጫ እውን ክቕይሮ ኣይክእልን እዩ። ንጣፍታታት ምቕዳም (Layering) እቲ ኣጠጋጋዊነት የወግኦ፦ NIP-44 ምሉእ ኮይኑ ይቕጽል፣ ብመለኸታዊ ቁልፊ ዘለወን ኩሉ (መፈረሚ ከምኡ እውን) ይፍጸመ፣ እቲ ናይ KEM ഭാഗ ግን እቲ ዓሚል ብቐጥታ ካብ ዝሕዝዎ መለክቲ ምልእታ ይስላ። ምእታው መፈረሚ ኣብ ክልቲኡ ዞງታ መደበኛ ድሕሪ-ኩዋንተም ተሳታፍቲ እዮም።
ወጻፊኡ ባንድዊድዝ እዩ፣ እውን ጥዑይ ኣይኮነን። እቲ ML-KEM ciphertext 1,088 ባይት እዩ፣ ኣብ ኩሉ መልእኽቲ ድማ ይሓዘ፣ ብbase64url ድማ ተቤዝሒ ናብ 1,451 መሓዛት ይቕየር፤ እቲ ውጫዊ AEAD 16-ባይት Poly1305 ታግ ይቕንጽ፣ እቲ ዝሓዘዮ NIP-44 payload ድማ ብሲሶ ይውስኽ። መልእኽቲ 50 መሓዛት ዘለዎ ካብ 176 ባይት ናብ 1,712 ይዓብዩ፣ መልእኽቲ 2,000 መሓዛት ዘለዎ ድማ ካብ 2,820 ናብ 5,238 ይዓብዩ። መልእኽቲ ብዘንዮ እንተኾነ እኳ፣ ንሓደ መልእኽቲ ብዛብላ 1.5 KB ይኸውን፤ እዚ ድማ ምስጢር (shared secret) ዳግሚ ብምጥቃም ክትቅልበሉ ብትክዓት እንተዘይተገበረ፣ ነፍሲ ወከፍ ግዜ ንሓዱሽ encapsulation ብምግባር ዝኽኸል ዋጋ እዩ።
6.2 ርእሰ-መግለጺ መረጃታት
እቲ pq2. ቅድመ-መጠቐሲ (prefix) ድሕረ-ተግበራ ንክበር ምሉእ ዝኸይድ ይገብሮ፦ ንኡሳቡ ዝገልጽ ስለ ዝኾነ፡ ዓሚል (client) ብመሰረት ምስጢራዊነት ዘለዎ መረጃ (payload) ብምርመራ፡ ብምልዓመ tag ወይ ብምዝካር እንታይ ከም ዝደግፎ ሓባራዊ ወገን (peer) ውሳነ ዝተሓዙ ናይ ምስጢር መፍቻ መገዲ ይመርጽ። ቅድመ-መጠቐሲ ዘይፈልጥ ኣንባቢ፡ ነቲ መረጃ ብጌጋ ከይነብቦ፡ ክኸፍቶ ይክልእ፤ ከምኡ እውን፡ ክልቲኦም ወገናት ድሕሪ-ኩዋንተም (post-quantum) ቅድሚ ምግባራቸው ዝተሓዘት መልእኽትታት፡ ብዘይ ዝኾነ ምልዋጥ ከም መደበኛ NIP-44 ክንበብ ይኽእሉ እዮም።
ML-KEM decapsulation ንኸቶ ክኸሸፍ ዘይክእል ንክኸውን ተሰሪሑ ኣሎ፦ ሓደ ዘይተስተካከል ciphertext እንተተ ሃቦ፣ እቲ Fujisaki-Okamoto transform ስሕታ (error) ክትወልድ ከይትከኣለይ፣ ሓደ deterministic pseudo-random ምስጢር ይመልስ። ስለዚ ጌጋ መራኸሲ ኣብቲ KEM layer ብፍጹም ኣይትወጽእን — ኣብ ውሽጢ NIP-44 ከም HMAC ውድቂ ይወጽእ፣ እዚ ድማ ከምቲ ጌጋ ክላሲካል መራኸሲ ዝወጽእ ኣረፈ። ተጠቓሚታት ክልቲኦም ብዘለዋነት ይመልከቶም፣ ስለዚ እቲ ውድቂ ዝተፈላለየ ምልክት ኣይትረኽብን። እዚ ድማ ነቲ ኣብ ዓንቀጽ 9.1 ዘሎ ዝተመርጸ መራኸሲታት (candidate list) ክሰርሕ ዝኽእል ይገብሮ እዩ፦ ዓሚል ነፍሲ ወከፍ መራኸሲ ብተራ ይፍትን፣ NIP-44 ድማ ኣየናይ እዩ እትክብእ ከም ዝነበረት ይገልጽሉ።
6.3 ክልቲኦም ንብርኽናት እቲ ስጦታ መዓቅቢ
A NIP-17 ዝብል ጽሑፍ ኣሎ። ምስጢራዊ መልእክት እዩ NIP-59 ዝብል ጽሑፍ ኣሎ። መዓሰ፦ ዘይተመርተሉ ወሬ፣ ብመዘኻኸሪ መንነት ተላእክቲ (ዓይነት 13) ተዓዊሱ፣ ድሕሪኡ ድማ ብመዘኻኸሪ ንሓደ መልእኽቲ ጥራይ ዝተፈጠረ (ዓይነት 1059) ተዓዊሱ። መዘኻኸሪ መንነት ብቐጥታ ዘለዎ ምዝገባ ኣብኡ፣ Nymchat ክልቲኦም ንብርኽታት የሕብረኦም፣ እዱ እዱ ድማ ናብኡ ዝተኣጠረ መሓዋይ ኣለዎ።
ሓደ ሰብ ዝፈራመ ኣፍታ ምስ ተመዝገበ፡ ጥራይ እቲ ውሽጠይና ዘይብሉ ክፈን ጥራይ እዩ ዝረክብ። እቲ ማሕተም ብእቲ ሰብ ዝፈራመ ከም መደበኛ NIP-44 ይፍጸም — እቲ መተግበሪ እቲ ማሕተም ዝፍጥሮ መደብ ፈጺሙ ኣይርእዮን — ስለዚ ኣብቲ ቦታ ድጋሚ ክዋሃድ ኣይክእልን እዩ። እዚ ኣብቲ ዝተጠቐሰ ጥቃት ምንም ዝተወሳሰበ ውጽኢት የብሉን፡ እቲ ማሕተም ክረኽብዎ ዝኽእል ብመሸፈኒ ጥራይ እዩ፡ እቲ መሸፈኒ ድማ እቲ መመዝገቢ ዘድላኸ ነገር እዩ። ዝተመዘገበ ትራፊክ ዘለዎ ተጻራሪ፡ እቲ ማሕተም ንጥቃት ክትገብሮ ቅድሚ ምግላጹ ML-KEM ክሰብሮ ኣለዎ።
7ናይ ጉጅ መልእኽትታት ከምኡውን ክፋላዊ ሽፋን
ናይ ጉጅለ መልእኽቲ ሓደ ስልተ-ጽሑፍ (ciphertext) ኣይኮነን። እዚ ነቲ ሓደ ጽሑፍ (plaintext) ንኩሎም ኣባላት ብዝተፈላለየ መገዲ ኣርእዮ፣ ነፍሲ ወከፍ ቅዳእ ድማ ምስ ናይቲ ወገን ML-KEM መራኸቢ (key) ኣቐልቢሉ። መራኸቢ ዘወጽአ ኣባል 'hybrid wrap' ይረክብ፤ ዘይኮነ ድማ 'classical wrap' ይረክብ።
እዚ ዘይቁጽን ኣተገባባብ ዝሸትዎ ናይ መዘገቢ ጸገም የፍጥር። ካብ ዓሰርተ ኣባላት ሸሞንት ሓባራዊ ቅዳሕ ምስ ተቐበሉ፣ መልእኽቲኡ እዩ ዘይኮነ ስምንተ ታውታ ተሓጊቡ። ሓደ ተጻጋፊ ኣብ ኩሎም ሓደተ ተመሳሳሊ ዝኾነ ሓደ ናይ መግለጺ ጽሑፍ (plaintext) ቅዳህ የድልዮ፣ ስለዚ መልእኽቲ ክትሓጎስ እንታይ ምስ ዝኸውን... ኩሉ ቅዳሕ እዩ።
Nymchat ስለዚ ኣብ እዋን fan-out ንሓደ-ሓደ መልእኽቲ ዘለዎ ሽፋን ይክትትል — እቲ ቁጽሪ ክፍለጥ ዝኽእል ኣብ እዋን እቶም wraps ዝፍጸሙ ጥራይ እዩ — ከምኡ እውን እቲ ባጅ "መልእኽቲ እዚ ተሓጊኡ ኣሎ" ክብል ከይኮነ "ን 10 ኣባላት ካብ 8 ንኣሽቶ ቁታንትም-ኣንጻር (quantum-resistant) እዩ" ኢሉ ይገልጽ። ቁጽሪ ዘይብሉ ቦታ፣ እዚ ን... ዘሎ መደበኛ ኩነታት ኮይኑ... ተቐቢሉ ናይ ጉጅለ መልእኽቲ (ተላእኪ ጥራይ ስርጭት ይሕሰብ)፣ እቲ መሳርሒ (interface) ምሉእ ዝኾነ ጥበቃ ንምባል ክፍሊ ጥበቃ ጥራይ ኢሉ ይገልጽ። ብብጽራት ናይ ገዛእ ብር ስለቲ ሓደ ቅዳእ ጥራይ ምሉእ ጥበቃ ምባል፣ ብዛዕባ እቲ መልእኽቲ ብሓፈሻ ንላዕሊ ምዝባብ ይኸውን።
7.1 እቲ መከላኸሊ ዘዘግብዎ
እቲ ጋሻ እቲ ሓቂ ብዛዕባ እቲ... ይገልጽ እዩ። መልእኽቲ, ብዛዕባቲ ሶፍትዌር እቲ ዘቐጸፎ ኣይኮነን:
- ምሉእ ጥበቃ፦ ኩሉ ቅጥዒ እዚ ተራ ጽሑፍ ሓቢራዊ ኮይኑ ወሪዱ።
- ከፊል፦ ሓደይቲ ቅዳሕቲ መልእኽቲ ጉጅለ ብመደበኛ ተሰዲዶም። ምሉእ ከምኣት ይኹን ዝምልል ክኸውን ተገዲዱ፣ ምኽንያቱ ኣብ ኩሎም ዝተመሳሰለ ሓደ መደበኛ ቅዳሕቲ ጽሑፍ (plaintext) ንተጻውቲ ይኸውን።
- Classical ብቐጥታ ተገልጺኡ ኣሎ፣ ምልክት (badge) ዘይምርኣይን ክኸውን ከምዘሎ ፋንታ፤ ምኽንያቱ ምልክት ዘይምርኣይ ኣብ መንጎ "ዘይምProtection"፣ "ተሰሪሑ"፣ ከምኡውን "እዚ build እዚ እታ ባህሪ የብሉን" ዝብሉ ምርራይ ስለዝፈጥር።
ውሳነቱ ዝተመዝገበ እቲ መልእኽቲ ምስ ተዓዘዘ እዩ፣ ዘይኮነስ ካብቲ ሓደ ሰብ ጸኒሑ ዝገልጾ መረጃ ዳግሚ ብምስላጥ እዩ። ድሮ ዘሎ ምስጢራዊ ጽሑፍ (ciphertext) ካብቲ ነይሩ ዘሎ ዝበለጸ ምክላኻዊ ጥበቃ ክረክብ ኣይኽእልን እዩ፣ ከምኡ እውን፣ ብመሰረት ሓድሽ ዜና ነዊሕ መልእኽትታት ዳግሚ ዘዳልው ኢንተርፌስ ብዛዕባ ነቲ ኣብ ሬለይ ዘሎ ባይትታት ሓሶት ክዛረብ እዩ።
እቶም ላዕላይ ዘሎም ሕቶታት ጉጅብቲ ምስዚ ተሓባብሩ እምበር ከም ዝተለወጡ ኣይኮኑን፦ ሓደ መልእኽቲ ጉጅብቲ ምሉእ ብምሉእ ዝተሓለወ ክኸውን እዩ፣ ኩሉ ኣባላት መተሓዛ ምስ ዘለዎም፤ ከምኡ እውን፡ ዝተረኽበ መልእኽቲ ጉጅብቲ ብዝሒ መኽፋን (coverage count) ምስ ዘይብሉ "ከፊል" ተባሂሉ ይርኢ።
8ንዓኻ ዝተጻሕፉ ቅጥዒታት
ዝተወሰኑ ነገራትቲ ዓውደ-መደብ (client) ዝሕዝቶም ብመንነት ተጠቃሚ ተሓዲሮም እዮም፦ ተሰይራ ቅጥዓትታት፣ ዝርዝር ንግግርታት፣ መፍትሒታት ጉጅለ፣ ከምኡ እውን መኽዘን መልእኽትታት። እዚኦም ካብ መብዛሕትኡ መለእኽትታት ብላዕሊ ብዛዕባ ተጠቃሚ ብዙሕ ሓበሬታ የጠቓልሉ፣ ስለዚ እዚኦም ብዘይተገላቢጦሽ እንተተሓዝቶም፣ መልእኽትታት ባዕሎም ብኸመይ ተሓጊቦም እንተተረኽቡ፣ እቲ ዝተሓዘ ሓበሬታ ከሳስነት ዝደከመ ክኸውን ስለ ዝኽእል እዩ። እዚኦም ነቲ ተመሳሳሊ ድብልቅ (hybrid) ተጠቂሞም፣ ምስ መሰረታዊ መፍትሒ ተጠቃሚ ተኣኪቦም እዮም — ኣብ ዓንቀጽ 3.2 ዘሎ ሓደ ዘይተሰባሰበ እንተዘይተሓሰበ፣ እቲ... nymchat-pq-root እቲ ዓውዲ ባዕሉ፣ ንሱ ጥራይ እትፈጥሮ መፍትሒ ብዘይተሓሓዘ ክኽደብ ዘይምኽኣሉ።
እዞም ኣርቲፋክትቲ እቲ ንድፊ ኣዝዮም ኣገዳሲ ዝኾኑሉ እዮም። ሓደ ናይ ኣሰራርሓ መደብ ወይ ናይ መዝገብ መስመር ኣብ ሓደ ቦታ ንብዙ ዓመታት ይቕጽል፣ እዚ ድማ ሓደ "ሕጂ ብምእካብ ድሕሪኡ ብምፍታሽ" ዝሰርሕ ተጻውቲ ዝሰባስቦ ዓይነት ነገር እዩ — ካብ ዝኾነ ሓደ መልእኽቲ ንላዕሊ፣ እቲ መልእኽቲ ግን ኣብ ኣእምሮ ተጠቃሚ ക്ഷണታዊ ጥራይ እዩ።
ኣብዚ ካብ ቁልፊ ይኹን ሓደ ገደብ ኣብቲ ቅርጺ ዝገዝእ እዩ። ንባዕሉ ኣድራሻ ዘለዎ ቅዳህী ብ... ክቕራብ ኣለዎ። ኩሉ ኣብቲ አካውንት ዘሎ መሳርሒ፣ ስለዚ እትኽእል ነገር ኣብቲ ዘውውቕሉ ዝርዝር ይገልጽ፣ እቲ አካውንት ድማ ኩሎም ክዕቅቡ ዝኽእሉ ጥራይ ይጽሕፍ። ካብዚ ወጻኢ ዝኾነ ነገር ምጽሓፍ፣ ሓደ መሳርሒ ካብ ናቱ ናይ ምውዳብ ኣৱድድ (settings) ክዕልል ይገብሮ — እዚ ድማ ክፍሊ 3.2 ብኻልእ ኣገባብካ ካብ ዝተፈላለየ ኣካሄድ ዝከላኸሉሉ ዘይተፈልጠ ውድቀት እዩ።
መንነት ጥራይ ዘለዎ፡ መ racines ዘይሓዝብ መሳርሒ፡ ካብቲ መ racines ዝፈለወ መደብ ምስ ተሰሲርካ ዝተሓዘ ኩሉ ነገር (ኣሰራርሓኡ እኳ) ክፈትሕ ኣይክእልን እዩ። እዚ ሓሳባዊ ውጽኢት እዩ፡ ኣይኮነን ብስሕተት ዝተገብረ። ስለዚ እዩ ዓንቀጽ 3.3 ሓደ ሓደስቲ መ racines ንምፍጣር፡ መሳርሒኡ ምስቲ ዘሎ ንምwurታው ዝውስኽ ዝገብሮ። ካልኣይ መ racines ነቲ መመልከቲ (blob) ክትንበብ ከይገበሮ እዩ፡ ጥራይ እዩ ነቲ ናይ መንነት መደብ ክከፍሎ እዩ። ተጠቃሚኡ ክwurታው ክትክእል ክትከይድ ተኽእል እዩ፡ እቲ መሳርሒ ክሰርሕ እዩ — ዘለዎ መደብ ዘለዎ ነገራት ጥራይ ይቆርእ፡ ብመደበኛ ድማ ይላእኽ።
ብራውዘር ኤክስቴሽን ወይ ከርቀት ዝሳቢ (NIP-46) ዝመራኸሉ መሳርሒ፣ ንምፍላጦ ዝጥቀመሉ nsec የለን፣ ግን ኮድ መልኢት (recovery code) ዘለዎ እዩ፤ ከምቲ ኣብ ዓንቀጽ 6.1 ኣብቲ ዘለዎ ውፍንታውያን ንጥፈታት (layered construction) ዘሎ፣ እዚ ንፖስት-ኳንተም (post-quantum) ክፋል ዘድልዮ ጥራይ እዩ፦ እቲ ዝሳቢ ከም ኩሉ ዝነበረ ከምቲ ዘለዎ NIP-44 ንጥፈት (layer) የፍርሙ እዩ፣ እቲ ዓሚል (client) ድማ ነቲ ውጫዊ ንጥፈት (outer layer) ባዕሉ ይፍትሖ እዩ። ከምዚ ዓይነት መግቢ (login) ኣብ ክልቲኡ दिशाት መደበኛ ተሳታፊ እዩ።
9መሽከርኸር
እቲ epoch ኣብቲ መዐቀፊ (derivation) ዘሎ መቁጸሪ፣ ብዘይተወሳኺ ናይ ቁልፊ መሳርሒ (key material) ምልዋጥ ከም ዝፍጸም ዘኽእል እዩ። ነቲ መቁጸሪ ምቕያር ካብቲ ተመሳሳሊ መሰረት (root) ሓድሽ ጥንፋዕ ቁልፊ (keypair) ከምኡውን ዳግመይ ዝወጣ መግለጺ ይህብ፤ ኣባላት ድማ ነቲ ሓድሽ ቁልፊ ካብቲ ዝተለወጠ መዝገብ ይረኽቡዎ። ስለዚ ምልዋጥ ተጠቃሚ ንነገር ዳግሚ ከየጽሕፍ ኣይሓትትን እዩ፦ መሰረቱ ንነፍሲ ወከፍ መታወቂያ ሓደ ግዜ ጥራይ እዩ ዝፍጠር፣ እቲ ግዜ (epoch) ድማ ምልዋጥ እዩ ዝፍጽሞ።
9.1 ቀደምቲ ዘመናት ይሕዙ፣ ንምንም ድማ ዳግመኛ ተዓሪእ ኣይትከውንን።
ምስጢራዊ መፍታሒ (key) ክቕየር ከሎ ዝኾነ ነገር ኣይትደገምን። ዓውዲ (client) ካብቲ ሕጂ ዘሎ ዘመን (current epoch) ክሳብ ዘመን - 3 ናይ መፍታሒ ዕድጋት ይፈጥር፣ ስለዚ ቕየር ቅድሚኡ ዝተዓዘበ መልእኽቲ፣ ምስ ተላዕከሉ ነይሩ ዘሎ ምስጢራዊ መፍታሒ (keypair) ገና ይኸፈት እዩ።
እቲ ግዜ መለዋወጥ (rotation) ብሓይለይ ኣዘኻፋይ ዝገብሮ እዩ፦ ብዘለኻ፣ ዝኾነ መለዋወጥ ኣብ መንጎ ዝተከታተለ ዘሎ ነገር ኩሉ ክተኸልከሎ ይገብሮ። እቲ ድሮ ዝተዓጨኸ ዝኾነ ነገር ንዘይተወሰነ ግዜ ክቕራእ ይኽእል እዩ፣ ምኽንያቱ ተጠቃሚ ዘይክደፍኦ መልእኽቲ፡ ካብቲ መከላኸሊኡ ብቕድሚኡ ክቕየር ዘይኽእል መልእኽቲ ብኣሽሓት ይሓስ እዩ (ክፍሊ 10.5)።
10እዚ ዘይከላኸሎ
ሓደ ዲዛይን እንታይ ከም ዘኽበሮ ጥራይ ዝርዝር ዘቕርብ ጽብጻፍ፣ ስርዓት ኣይገልጽን እዩ፤ ኣብ መስተጋገሪ (interface) ናይ ጸጥታ ባህሪ ኣጋንኖ ምግላጽ ካብ ምዕጋዮ ይውስኽ እዩ። እዞም ዝስዕቡ ነገራት እዚ ሕንጻ ዘኽብዮም ኣይኮኑን።
10.1 እቲ ስር ካዕል ምስጢር እዩ፣ ከኣ ምፍላጡ ዘይተመሊሱ እዩ።
እዚ ናይቲ ንድፊ ናይ ሓቂ ዋጋ እዩ። ኣብ ዓንቀጽ 2 ዘሎ "ሓደ ተጠቃሚ ብሓደ ነገር ጥራይ ክሕዝ ኣለዎ" ዝብል ገደብ ክፍጸም ኣይከኣልን እዩ፦ እቲ nsec ጥራይ ናይቲ post-quantum key ክመልሰሉ ኣይኽእልን እዩ፣ ምኽንያቱ ሓደ ዋና ነጥቢ እዩ ከምኡ ድማ ዝኾነ ዓወቲ ዋጋ ወይ ካልእ ምስጢራዊ ነገር ከይገልጦ እዩ። መሳርሒ (device) እቲ root ዝሓዘ እንተዘይኮነስን፣ ናይ ዓንቀጽ 3.2 wraps ክኽፈቱ እንተዘይከሰንን፣ ምስቲ ካብ root ዝመጸ key ተኣዊሱ ዘሎ መረጃ ክመልሶ ኣይከኣልን እዩ። ዝኾነ escrow የለን፣ ብውዕለት ድማ ነቲ ክሕዝ ዝኽእል ዝኾነ ኣካል የለን።
ብዕርሰ-ጉልሒ ዝግበር ዝተላውጥ ጥራይ እንተኾይኑ፣ እዚ ናይ መጀመርታ ንባብ ካብ ዘርእዮ ንላዕሊ ንቐረብ እዩ። እቲ ፈጺሙ ዘይቅትየ... nympq1… ኮድ ኣብ ዝኾነ ቦታ ሓደ ጥራይ ቅዳህ ኣለዎ፣ ኣብ ሓደ መሳርሒ፣ እቲ መሳርሒ ምጥፋኡ
ምስኡ ዝተኣሰረ ኩሉ ፖስት-ኳንተም መልእኽቲ፣ settings blobን ናይ ኣርካይቭ መስመርን የጥፋእ እዩ። እቲ
nsec ኣይሕግዝን እዩ፤ ምሉእ ውጥን ዝተሰነደሉ ባህሪ እዩ።
ጸኒሑ ዝተተሓዘ ዝኾነ ሓዊዱ ዝመጸ መገዲ፣ ነቲ ብእ hand ዝተገብረ መገዲ ዘለዎ ደረጃ ከ przej ይግባ ኣለዎ። ተቖጣኸሪ፣ ዘሎ ዝኸለፈለ መገዲ ይቖጽር፣ ስለዚ ሓደ ስርዓት ዋጋኡ፣ እቲ ኣዳይነት ዘለዎ ናይ ምሶሶ መገዲኡ ዋጋ እዩ — ንኣብነት፣ ምስ ናይ ምዝካር ቃላት (passphrase)፣ ምሉእ ስርዓቱ ምስቲ ናይ ምዝካር ቃላት ዘለዎ ዋጋ ዝተኣሳሰረ ይኸውን፣ እቲ ሓዊዱ ዝተሓዘ መስመር ድማ፣ እቲ "ሕጂ ክሒዝካ ጸኒሑ ደጻጻር" ዝብል ተቕዋሚ ብፍታውኡ ብረኻ (offline) ደጻጻር ዝገብሮ ኣቑሑ እዩ።
10.2 ኣረጋጊጽነት፣ ካብ ምስጢራዊነት ዝተፈልየ
ኣብ Nostr ዘሎ ኩሉ መተማዊል Schnorr over secp256k1 እዮም፣ እዚ ድማ ኣብዚ ተቐይሩ ኣይብቅዕን እዩ። ኳንተም ኮምፒተር ዘለዎ ተጸራሪ፣ መተማዊል ብምቑራጽ ኣብቲ ዘሎ ግዜ ተጠቃሚ ብመስል ክመሰል ይኽእል እዩ። እቲ ሃይብሪድ መለዋወጢ መفاتሕ (hybrid key exchange) ዘሸንፍዎ ነገር "ሕጂ ኣከምቲ፣ ጸኒሑ ዓዲ" (harvest-now-decrypt-later) ዝብል እዩ፦ ሎሚ ትራፊክ ዝቅትብ ተጸራሪ፣ ጸኒሑ ክቕራእዎ ኣይኽእልን እዩ። እዚ፣ ነቲ ሜሽን ዝሓዘ ተጸራሪ ካብ መልእኽቲ ምቑራጽ ኣይከላኸሎን እዩ። እዚ ፍልይነት እዚ ብሓሳብ ናብቲ ኣፕሊኬሽንታት ተሸጋጊሩ ኣሎ — እቲ ምልክት መቆልፊ (padlock) ኣረጋጋጺነት ይገልጽ፣ እቲ መከላኸሊ (shield) ድማ ምስጢራዊነት ይገልጽ፣ እዚ ድማ ዝፍለሉ ምልክታት ኮይኖም እዮም፣ ምኽንያቱ መልእኽቲ ሓደ ካብቲ ካልኣይ ከይኣመሰለ ክኸውን ስለ ዝኽእል እዩ።
እዚ ኣብ ዓንቀጽ 4 ዘሎ ማስታወቂያ ክትቃልዕ ከም ዝኽእላ እውን ይወሰን እዩ። ኣብ መንጎ npubን ML-KEM key ንብኡን ዘሎ ምልኣኽ መዓረጊ (signature) secp256k1 ስለ ዝኾነ፡ ነቶም መዓረጊታት ክመሰል ዝኽእል ተንኮይ፡ ናቱ key ክትክእል እዩ። ምስጢራዊነት ኣብ ቅድሚ መጻኢ ተንኮይ ዘሎ፣ ምስ ናይ ወຄວາມነት (authenticity) ኣብ ቅድሚ ተንኮይ ዘሎ ኣይተመሳሰለን።
10.3 መተሓዊ መረጃ
መኣቀብ ስጦታ መላኽቲ ይሓፍን፣ ተቐባሊ ካብ ሓደ ንላዕሊ p ታግ፣ ዓይነት፣ ከምኡውን እዋን እቲ ውሽጠኛ መልእኽቲ። ሓደ ክንዲ ከም ዘሎ፣ መጠንኡ፣ ወይ ድማ ሬሌይ መቲኡ ዝተቐበሎ እዋን ኣይሕብዕን እዩ። ናይ ትራፊክ ትንታኔ ብዝኾነ ክፋል እዚ ዲዛይን ኣይተዳሰሰን እዩ።
10.4 እቲ ኦፍላይን መረብ
ናይ Nymchat Bluetooth mesh transport፡ ናብራእይ (handshake) ባዕሉ ዘለዎ ፍልይ ፕሮቶኮል ኮይኑ፡ እዚ ስራሕ እዚ ኣይሸፍኖን እዩ። ኣብቲ ሜሽ ዝርከቡ መልእኽትታት ክላሲካዊ እዮም።
10.5 መልእኽትታት ድሮ ተላክዓቶም
ሓደ ወገን ገና ክላሲካል ከም ዝነበረ וועን ዝተመዝገበ ምስጢራዊ ጽሑፍ (ciphertext) ብቐጻሊ ክላሲካል ኮይኑ ይቕጽል እዩ። ድሮ ስለ ዘለዎ ዳግሚ ክታደስ ኣይከኣልን እዩ። ጥበቃ ዝጅምር፡ ክልቲኦም ወገናት post-quantum ቁልፍታት ዘለዎም ዘሎ መልእኽቲ እዩ፣ እቲ ባህሪ (feature) ዝተሰርዐሉ ግዜ ኣይኮነን።
11ዝተራኣዩ ኣማራጺታት
| ኣገባብ | ኣብምንታይ ኣይፋልን? |
|---|---|
| ድሕሪ-ኩዋንተም ቁልፊ ካብቲ ናይ መንነት ቁልፊ ውሰድ። | ተወግዓ። እቲ መኽፋ (derivation) ኣብቲ nsec ዘሎ ኣፋንዩ ኣልጎሪትም እዩ፣ ኳንተም ተጻዊ ድማ ካብቲ ዝወጸ npub እቲ nsec የርእዮ፣ ስለዚ እቲ ክላሲካል ክፋል ምስ ተሰበረ እቲ ፖስት-ኳንተም ክፋልን ምስኡ ይሓዊ። ኣብዚ ጽሑፍ እዚ ዘሎ ኩሉ ናይ ምድንፋሕ ጸገማት ሰሪሑ፣ ግን ንከለ ኣይከላኸለን። ኣንቀጽ 3.1። |
| እቲ root ብ NIP-44 ናብ ካልእ መሳርሒታት ተጠቃሚ ስደድ። | ብተፈላለየ መልክዕ፣ ብኣቱ ሰበብ ተገዲፉ። ብጥንታዊ ስድራ (encryption) ጥራይ ተገልሲ ዘሎ ሩት፣ ነቲ መልእኽቲ ብዝመዘገበን ጸጋኡ (key) ብለይቱ ብዝፈጸመን ዝኾነ ሰብ ክመልሶ ይኽእል እዩ፤ እዚ ድማ እቲ ሩት ክሰናክል ዝተፈጠረ ተጻጋፊ እዩ። |
| ኣብ ኩሎም መሳርሒታት ብብልይነት ዝተፈጠረ ML-KEM keypair። | ተኸልሲ። መሳርሒታት ዝተፈላለዩ ቁልፊታት ደካፕሱላሽን (decapsulation keys) ክህልወሎም እዩ፣ ከኣ ንነፍሲ ወከፍ መታወቂያ ዝተተኪእዎ ሓበሬታ እቲ ኩሉ ክሕዝ ኣይክእልን እዩ። ተወሳሲታት ናብቲ ኣብ መወዳእታ ዝተሰናበተ ቁልፊ ጥራይ ክጽሕፉ (encrypt) ይከብድ፣ እቲ ውጽኢት ድማ ካልኦት መሳርሒታት ክምንበብዎ ኣይክእሉን እዮም። ንነፍሲ ወከፍ መታወቂያ ብመሰረት እቶም ኣብ ዓንቀጽ 3.2 ዘሎ መገድታት ዝንቀሳቐሱ ሓደ መሰረት (root) ምጥቃሙ እዩ እዚ ዝከላኸልሉ ዘሎ። |
| መሰረቱ ብፒን ክደፖ | ተወሪዱ። ኣብ ኣፍሊን (offline) ዝተሓዋዩ መስመር (wrapped row) ዘለዎ ኣጥላሊ (attacker) ንምに対ልማ፣ 4-digit PIN 13 bits ዝግመት እዩ። ምስ ክልተ 256-bit መንገዲ ምቕራብ፣ እቲ ዝደቀቀ መwraፕ (weakest wrap) ዘለዎ ዋጋ ብዘይምቡራሕ ክገልጽ እዩ። |
| እቲ npub ክልቲኦም ቁልፍታት ክያዝ ኣስፍርሕ። | 1,184 ባይት መShare ዝኽእል መለለዪ ኣይኮነን፣ ከም 32 ባይት ተወሰንዩ ዘሎ ኣድራሻ ዝርጉሞ ዘለዉ ኩሎም ዘለዉ Nostr ክላይንትታት ድማ ክበርክሶ እዩ። |
| ቀንዲ ኣገልግሎት መዝገብ | እቲ መረብ ክትንከብ ዝተፈጥረሉ ስልጣን ዳግሚ መእተዊ ይገብሮ። መን እኳ ነቲ ምፅርሒ መልሲ ዝህብ፣ መን መልእኽቲ ክቆልብ ከም ዝኽእል ይውስን። |
| ቁልፊ ንነፍሲ ወከፍ መልእኽቲ ኣተሓሓብ | ምንም ኣይፈታሕን፦ እቲ ኣመልካኪ የድልዮ ናይ ተቐባሊ ቁልፊ ቅድሚ እቲ ቀዳማይ መልእኽቲ፣ እዚ ድማ ቅድሚኡ ንዓኡ ሒዙ ዝመጽእ መልእኽቲ ዘይብሉ ኩነታት ብልክዕ እዩ። |
| ኣብቲ ዘለወ መስመር ምድንታር ዓቕሚ | ናይ መውረድ ገጽታ ይፈጥር። ናይ ዓቕሚ ምልክት ክዘልዮ ዝኽእል ውጥዒት ሰራሕቲ ነቲ ቀደምቲ መገዲ ይገድድ። |
| ድሕሪ-ኩዋንተም ጥራይ፣ ክላሲካል ኣካል የለን | ዓመታት ዝለዓለ ትንተና ብዛዕባ secp256k1 ንሓደ ኣዝዩ ሓደስቲ መሰረታዊ መሳርሒ ብምልውጣጥ ኣውጋ። ሓደ ተሓባሪ ይውድቕ እንተኾይኑ ጥራይ... ክልቲኡ ውድቀት። |
12ተመጣጠንነት ኣተገባባይ
Nymchat ክልልቲ ገለሰ መተግበሪታት እዚ ኣቀራርሓ የቕርብ — ሓደ ንዌብ ኣፕሊኬሽን JavaScript ተጠቂሙ፣ ሓደ ንሞባይል ኣፕሊኬሽናት Dart ተጠቂሙ፣ ካብ መጀመርታ ዝተሰርሐ ML-KEM-768 ኮPi ዝሓዘ። ክልልቲ መተግበሪታት ሓደ መሰረታዊ ነገር (primitive) ክትሰርሕ ምግባር ብሓፈሻ ሓደስቲ ሓደጋ እዩ፣ ስለዚ፡ ብሓባር ክስማሙ ብምእታመን፡ ክትትርከብ ይፍትኑ።
እቲ ትግበራ Dart ML-KEM ምስ እቲ ኣፋዊ ተረጋጊዩ ኣሎ
NIST ACVP
ዝተፈልጠኦ መልሲ ዘለዎም መርበብቲ ን ML-KEM-768 (ML-KEM-*-FIPS20325 ምስጢር-መፍጠሪ (key-generation)፣ 25 መክተት (encapsulation) ከምኡ እውን 10 መፍታት (decapsulation) ኩነታት፣ ከብቻኦም ከም ናይ መtesting ወውት (suite) ዝፍጸሙ እዮም። እዞም NIST ንሓደ ትግበራ (implementation) ንምርግጋጽ ዝትምህር (publishes) ዝገብሎም ቬክተር (vectors) እዮም፣ ስለዚ እዞም ኩነታት passed ምግባርኩም፣ እቲ ዝተመዛወተ (port) ትክክል ምዃኑ ዘርእይ መርትዓዊ መረጋገጺ እንጂ፣ ክልቲኦም ዓማዊል (clients) ንሓደ ሓደ ዝተማዓሉ ምዃኖም ጥራይ ዘርእይ ኣይኮነን። ካብኡ ንላዕሊ፣ ዝተጋራሓ ናይ መtesting ቬክተር — መሰረት መበገሲ (seed derivation)፣ መክተት (encapsulation)፣ ክልቲኦም ናይ payload ቅርጺታትን፣ ምሉእ gift wraps ንነይሮም — ካብ JavaScript መነሻ (reference) ተገይሩ ዝፍጥ ይግበር፣ ብክልቲኦም ናይ መtesting ወውታት ድማ ይረጋገጽ። እቲ መሰረታዊ ምስጢር (root secret) ነቲ መገወታይ (fixture) ብምቕያር ዘመንብሶ እዩ፦ መሰረታዊ ምስጢር ናብ መሰረት መበገሲ፣ መሰረታዊ ምስጢር ናብ keypair፣ ናይቲ መሰረታዊ ምስጢር ህይወታዊ ኣንጻፋ (public fingerprint)፣ ከምኡ እውን ካብቲ ውሽጣዊ ክልል ዝተፈለየ መkey፣ nonce ከምኡ እውን ምስኡ ዝተኣሳሰሩ ሓበሬታታት እዞም ኩሎም ናይ ገዛፎም ቬክተር እዮም፣ ስለዚ ክልቲኦም ዓማዊል ብዛዕባ...
nympq1… ኮድ ማለት መልእኽቲ ብወተይ ባይትታት (bytes) ዝተሓሓዘሉ ማለት እዩ። ኣብ ዝኾነ ኣተገባብነት ዘሎ ልዩነት፣ እቲ ካልእ ክለየንት ዘይኽእል መልእኽቲ ምፍጣር ይልቅ፣ ብልድ (build) ክውድቕ ይገብር።
እቲ ናይ ኣንጻባቕ ኣሻርነት ኣብ መንጎ እቶالات ስም ንምሃብ ይኹን እዩ። ንሓደ መሳርሒ "እዚ ዘለኒ መሰረት እዩ" ካብ "እዚ ዝተፈላለየ እዩ" ንምብል ዝሕግዝ እዩ፣ ከምኡ እውን ሓደ ተጠቃሚ ናይ ከጋራ ተጠቃሚ ኣንጻባቕ ኣሻርነት ክመሰል እንተዘይክኢሉ፡ ሓደ ጽቡቕ ዝብል መዝገብ ከም ዘይተረኽበ ክቆጽሮ ይኽእል እዩ — ድሕሪኡ፣ ከምቲ ኣብ ዓንቀጽ 3.3 ዘሎ፣ ካልኣይ መሰረት ክፈጥርን መንነት ክኸፍልን ይኽእል እዩ። ብዛብሳይ እዚኣለዩ እዚ ዝኸውን መገዲ እዩ።
Nymchat እዩ ክፈት
ምንጪ ብመሰረት እቲ AGPL-3.0። ኣብዚ ዝተገለጸ እቲ ናይ ክሪፕቶግራፊ መእከላይ እዩ
js/nym-crypto.js እና js/modules/pq.js ኣብቲ ዌብ ክለየንት፣ ከምኡውን
lib/core/crypto/ ምሳ lib/features/identity/pq_registry.dart ኣብ
ቲ ሞባይል ክለይንትታት።
ንሓጺርን ዘይተክኒካውን መብርሂ ንምርኣይ እቲ... ናይ ሓበሬታ መሰረት ገጽ ብዛዕባ ኳንተም-ተከላኸለ ምስጢራዊ መግቢያ.