SynergyX بنيت على الخوارزميات NIST موحدة — FIPS 203 (ML-KEM/Kyber-768) و FIPS 205 (SLH-DSA/SPHINCS+). تم النشر في 15 يناير 2026. يمكن التحقق من جميع مطالبات التشفير على السلسلة وضدها NIST CSRC الوثائق. صفر قبل الألغام. صفر إيكو. صفر في سي. تخصيص المؤسسين صفر. 77.7 مليون سقف ثابت. محفظة المطورين عامة وغير خاصة بشكل متعمد — في كل دفتر عناوين في المستكشف. لا شيء منها يطلب منك أن تثق بشخص ما.
البرنامج التعليمي لتكامل Kyber-768: دليل التنفيذ الكامل
📅 آخر تحديث: 2 أغسطس 2026🎧 الاستماع: ~6 دقائق
يوفر Kyber-768 (الموحد كـ ML-KEM-768 في FIPS 203) تغليفًا رئيسيًا مقاومًا للكم من أجل تبادل آمن للمفاتيح. يستعرض هذا البرنامج التعليمي التكامل الكامل مع Kyber-768 مع أمثلة التعليمات البرمجية العملية بلغات متعددة. ال محفظة SynX مقاومة للكم يستخدم هذه الأنماط لجميع عمليات التبادل الرئيسية.
فهم آليات التغليف الرئيسية
تتيح آلية التغليف الرئيسية (KEM) للطرفين إنشاء سر مشترك عبر قناة غير آمنة:
توليد المفتاح: تقوم أليس بإنشاء زوج مفاتيح (مفتاح عام، مفتاح سري)
التغليف: يستخدم بوب مفتاح Alice العام لإنشاء سر مشترك ونص مشفر
فك التغليف: تستخدم أليس مفتاحها السري لاستعادة السر المشترك من النص المشفر
على عكس تبادل مفاتيح Diffie-Hellman، تنتج KEMs السر المشترك داخليًا بدلاً من حسابه من القيم المتبادلة. وهذا يبسط البراهين الأمنية ويتيح إنشاءات ما بعد الكم.
لماذا KEM بدلاً من تبادل المفاتيح؟
يتطلب ديفي هيلمان الكلاسيكي حساب اللوغاريتمات المنفصلة، والتي تحلها أجهزة الكمبيوتر الكمومية بكفاءة. يستخدم Kyber-768 مشاكل الشبكة (Module-LWE) التي تقاوم الخوارزميات الكمومية المعروفة. يوفر بناء KEM أمان IND-CCA2، وهو أقوى مفهوم لأمان النص المشفر المختار.
معلمات Kyber-768
المعلمة
قيمة
وصف
مستوى الأمان
NIST المستوى 3
~192 بت الأمن الكلاسيكي
حجم المفتاح العام
1,184 بايت
تنتقل إلى المرسلين
حجم المفتاح السري
2400 بايت
أبقى خاصة
حجم النص المشفر
1,088 بايت
سر مغلف
الحجم السري المشترك
32 بايت
لاشتقاق المفتاح
التنفيذ: بايثون
باستخدام روابط بايثون Open Quantum Safe (OQS):
# التثبيت: تثبيت النقطة liboqs-pythonيستورد oqs
من الكتابة يستورد مترابطة بيانية
فصلكيبر768:
""" يوفر تغليف مفتاح Kyber-768 لـ SynX أمان NIST من المستوى 3 (أي ما يعادل AES-192) """
الخوارزمية = "كايبر 768"مواطنه__الحرف الأولي__(النفس):
"""التهيئة باستخدام مثيل KEM الجديد"""
self._kem = oqs.KeyEncapsulation(self.ALGORITHM)
مواطنهcreate_keypair(النفس) -> مترابطة بيانية[بايت، بايت]:
""" إنشاء زوج مفاتيح Kyber-768 جديد الإرجاعات: مجموعة من (المفتاح_العامة، المفتاح_السري) - المفتاح_العام: 1,184 بايت، آمن للمشاركة - المفتاح_السري: 2,400 بايت، الاحتفاظ بالخصوصية """
public_key = self._kem.generate_keypair() Secret_key = self._kem.export_secret_key()
يعود المفتاح العام، المفتاح السري
مواطنهتغليف(الذاتي، مفتاح_المتلقي_العام: بايت) -> مترابطة بيانية[بايت، بايت]:
""" تغليف سر مشترك للمستلم الوسائط: Receiver_public_key: المفتاح العام Kyber-768 للمستلم إرجاع: مجموعة من (نص مشفر، Share_secret) - نص مشفر: 1,088 بايت، إرسال إلى المستلم - Share_secret: 32 بايت، يستخدم للتشفير """
النص المشفر، Share_secret = self._kem.encap_secret (receiver_public_key)
يعود النص المشفر، Shared_secret
مواطنهdecapsulate(الذات، النص المشفر: بايت، مفتاح_المفتاح السري: بايت) -> البايتات:
""" قم بفك التغليف لاستعادة السر المشترك الوسائط: نص مشفر: نص مشفر بحجم 1088 بايت من مفتاح التغليف Secret_key: مفتاح سر Kyber-768 الخاص بك يُرجع: Shared_secret: 32 بايت، نفس سر المغلف """# إنشاء مثيل جديد لإلغاء التغليف
kem = oqs.KeyEncapsulation(self.ALGORITHM, Secret_key)
يعود kem.decap_secret(النص المشفر)
#مثال للاستخداممواطنهDemo_key_exchange(): Kyber = كيبر768()
# تقوم أليس بإنشاء زوج المفاتيح الخاص بها
alice_pk, alice_sk = Kyber.generate_keypair() print(f"مفتاح أليس العام: {len(alice_pk)} بايت")
#بوب يلخص سراً لأليس
نص مشفر، bob_secret = Kyber.encapsulate(alice_pk) print(f"النص المشفر: {len(ciphertext)} بايت") طباعة (ف"سر بوب المشترك: {bob_secret.hex()[:32]}...")
# تتفكك أليس للحصول على نفس السر
alice_secret = Kyber.decapsulate(ciphertext, alice_sk) print(f"سر أليس المشترك: {alice_secret.hex()[:32]}...")
# التحقق من مطابقتهاتأكيد alice_secret == طباعة bob_secret("✓ تبادل المفاتيح ناجح!")
if __الاسم__ == "__رئيسي__":demo_key_exchange()
// اذهب واحصل على github.com/cloudflare/circlطَرد رئيسي
يستورد (
"بايت""إف إم تي""github.com/cloudflare/circl/kem/Kyber/kyber768"
)
funcرئيسي() {
// تقوم أليس بإنشاء زوج المفاتيح
alicePublic، alicePrivate، يخطئ:= kyber768.GenerateKeyPair(nil)
if يخطئ ! = لا شيء { الذعر (يخطئ) }
// يغلف بوب
نص مشفر، bobSecret، يخطئ: = kyber768.Encapsulate (nil، alicePublic)
if يخطئ ! = لا شيء { الذعر (يخطئ) }
// أليس تتفكك
aliceSecret، يخطئ := kyber768.Decapsulate(alicePrivate, ciphertext)
if يخطئ ! = لا شيء { الذعر (يخطئ) }
// التحقق من المطابقةif !bytes.Equal(aliceSecret, bobSecret) { الذعر("الأسرار غير متطابقة!") } FMT.Println("✓ تبادل المفاتيح ناجح!") فمت.برينتف("المفتاح العام: %d بايت\n"، لين(alicePublic.Bytes())) fmt.Printf("النص المشفر: %d بايت\n"، لين(النص المشفر)) fmt.Printf("السر المشترك: %d بايت\n", لين(aliceSecret)) }
تطبيق العالم الحقيقي: عناوين الموقد الدوارة
هذا هو المكان الذي يتوقف فيه Kyber-768 عن كونه تمرينًا أكاديميًا ويبدأ في القيام بعمل حقيقي. ال محفظة SynX مقاومة للكم يستخدمه للسلطة يرسل طبقة الظل إلى عناوين النسخ الدوارة - عنوان جديد لكل معاملة، لا يتم إعادة استخدامه أبدًا.
السياق قبل الكود، لأن البنية مهمة أكثر من المقتطف. SynX هو طبقة مزدوجة: شفافة افتراضيًا، وظل عند الطلب. يكون الإرسال العادي عامًا في مستكشف الكتل - المبلغ والمرسل والمستلم - تمامًا مثل Bitcoin. يتم تشفير إرسال الظل بواسطة Kyber-768 وتوجيهه إلى عنوان النسخ، ويتم إرسال ملف يقوم برنامج Relay Daemon بإخفاء العناوين الخاصة قبل أن يستقبلها المستكشف. لا يحتفظ المستكشف مطلقًا بالبيانات المجردة. تُرجع أرصدة الظل وقوائم المعاملات "خاص"، ويحمل السجل privacy_tier: shadow.
لاحظ ما ليس هذا: ليس خلاطًا، وليس بهلوانًا، وليس CoinJoin. إن تدوير العنوان هو بروتوكول أصلي، لذلك لا توجد خدمة خارجية لمعاقبتها. وهي ليست معرفة صفرية - لا تقدم SynX أي توقيعات zk-SNARK أو توقيعات حلقية. التشفير والانضباط في العناوين، وليس أنظمة الإثبات الغريبة.
النمط أدناه هو نموذج KEM البدائي الذي تم تناوله سابقًا في هذا البرنامج التعليمي، ويتم تطبيقه على توجيه الدفع:
يستورد هاشليب
من الكتابة يستورد مترابطة بيانية
فصلعنوان الموقد:
""" عناوين ناسخ دوارة ما بعد الكم باستخدام Kyber-768 عنوان جديد لكل معاملة، لا يتم إعادة استخدامه مطلقًا - يهزم تحليل سلسلة مجموعات إعادة استخدام العنوان الذي يعتمد على """مواطنه__الحرف الأولي__(الذات): self.Kyber = كيبر768()
مواطنهcreate_receiver_keys(النفس) -> مترابطة بيانية[بايت، بايت]:
""" يقوم جهاز الاستقبال بإنشاء زوج مفاتيح مسح طويل المدى يتم نشر المفتاح العام (على سبيل المثال، على موقع ويب) ويتم الاحتفاظ بالمفتاح السري خاصًا لاكتشاف المدفوعات """يعود self.Kyber.generate_keypair()
مواطنهcreate_burner_ Payment(ذاتي، مفتاح الاستقبال_العام: بايت) -> مترابطة بيانية[بايت، بايت، بايت]:
""" يقوم المرسل بإنشاء دفعة ظلية إلى عنوان ناسخ جديد الوسائط: جهاز الاستقبال_public_key: مفتاح Kyber العام المنشور للمستلم العوائد: - عنوان_مرة واحدة: أرسل الأموال هنا - ephemeral_public: تضمين في المعاملة - sender_shared_secret: كمرجع (يمكن للمرسل استخلاص العنوان) """# يقوم المرسل بإنشاء زوج مفاتيح سريع الزوال
ephemeral_pk، ephemeral_sk = self.Kyber.generate_keypair()
# قم بتغليف المفتاح العام للمستلم
نص مشفر، Share_secret = self.Kyber.encapsulate (receiver_public_key)
# اشتقاق عنوان لمرة واحدة من السر المشترك
one_time_key = hashlib.Blake2b(shared_secret + b"عنوان_الموقد",Digest_size=32 .digest()
# عمليا، استخرج زوج مفاتيح كاملا للإنفاق
one_time_address = hashlib.Blake2b( one_time_key,Digest_size=20).hexdigest()
يعود ( one_time_address.encode()، النص المشفر، # تضمين في المعاملة
Share_secret )
مواطنهDetect_burner_Payment(ذاتي، مفتاح_الاستقبال_السري: بايت، النص المشفر: بايت) -> البايتات:
""" يقوم المستلم بفحص المعاملات لاكتشاف مدفوعات الموقد الواردة الوسائط: جهاز الاستقبال_سيكريت_مفتاح: النص المشفر للمفتاح السري للمستلم: من بيانات تعريف المعاملة الإرجاعات: عنوان_وقت واحد: إذا كان هذا يطابق مخرجات الإرسال، فهو مخصص لنا """# Decapsulate لاستعادة السر المشترك
Shared_secret = self.Kyber.decapsulate (نص مشفر، جهاز استقبال_سيكرت_مفتاح)
# اشتقاق نفس العنوان لمرة واحدة
one_time_key = hashlib.Blake2b(shared_secret + b"عنوان_الموقد"،Digest_size=32 .digest() one_time_address = hashlib.Blake2b( one_time_key,Digest_size=20 ).hexdigest()
يعود one_time_address.encode()
# الاستخدام
الموقد = عنوان الموقد()
# ينشر بوب مفتاحه العام الذي يتم مسحه ضوئيًا
bob_pk، bob_sk = burner.generate_receiver_keys()
# ترسل أليس إلى عنوان ناسخ جديد
العنوان، النص المشفر، _ = burner.create_burner_pay(bob_pk) print(f"يتم الإرسال إلى: {address.decode()}")
# يقوم بوب بمسح المعاملات ويجد دفعته
تم الكشف = burner.detect_burner_Payment (bob_sk، نص مشفر)
تأكيد تم الكشف == طباعة العنوان("✓ تم اكتشاف الدفع!")
الكشف: مفتاح العرض سريع الزوال
عنوان ناسخ يخفي المستلم. ولكن عاجلا أم آجلا عليك أن تفعل ذلك يثبت حدث الدفع - لمدقق الحسابات، أو الطرف المقابل، أو المحكمة. تلك اللحظة هي حيث تقوم معظم سلاسل الخصوصية بتسليم كل شيء بهدوء.
مفاتيح العرض Zcash دائمة وقابلة للتحويل: قم بالكشف عنها مرة واحدة وستكون قد منحت المراقبة مدى الحياة للحامل ولمن يمررها إليه. يُصدر SynX قدرة منتهية الصلاحية بدلاً من ذلك. ال مفتاح عرض سريع الزوال يتم نطاقه لمعاملة واحدة والحياة ثلاثين دقيقة، ثم اختفى - ولم يتم إبطاله، ولم يتم أرشفته، ولم يتبق أي سجل لاستدعاءه. لا يتم كتابته على القرص مطلقًا؛ إنه موجود فقط في الذاكرة المتطايرة عبر شبكة عقدة Wildlands.
والإفصاح يقتضي أمرين: تجزئة الصفقة and the مفتاح العرض. لا أحد وحده يكشف أي شيء. وحتى عقد كليهما، ما هي الأسطح المبلغ فقط - أبدا الرسم البياني. لا من دفع لمن، ولا الأرصدة، ولا التاريخ. لا يتم تجميع طبقة الهوية مطلقًا في المقام الأول، وتوجد العناوين على هيئة تجزئات متطابقة مقاومة للارتباط بدلاً من سلاسل مجردة.
إذا كنت تقوم بالتكامل مع SynX، فقم بالتصميم وفقًا لذلك: لا تفترض أبدًا إمكانية تخزين مفتاح العرض أو إعادة تشغيله لاحقًا أو تفويضه لاحقًا. القدرات المنتهية، وليس منح الهوية الدائمة.
تطبيق في العالم الحقيقي: نسخة احتياطية مشفرة للمحفظة
استخدم Kyber-768 لتشفير النسخ الاحتياطية للمحفظة التي تظل آمنة ضد أجهزة الكمبيوتر الكمومية:
يستورد os
من cryptography.hazmat.primitives.ciphers.aead يستورد AESGCM
فصلQuantumSecureBackup:
""" تشفير النسخ الاحتياطية للمحفظة باستخدام تغليف مفتاح Kyber-768. لا يمكن فك تشفير النص المشفر إلا باستخدام المفتاح السري Kyber، مما يوفر أمانًا ما بعد الكم للتخزين طويل المدى. """مواطنه__الحرف الأولي__(الذات): self.Kyber = كيبر768()
مواطنهcreate_backup_keypair(النفس) -> مترابطة بيانية[بايت، بايت]:
""" إنشاء زوج مفاتيح لتشفير النسخ الاحتياطي تخزين المفتاح السري بشكل آمن (على سبيل المثال، وحدة أمان الأجهزة) يتم استخدام المفتاح العام عند إنشاء نسخ احتياطية """يعود self.Kyber.generate_keypair()
مواطنهencrypt_backup(ذاتي، بيانات_المحفظة: بايت، مفتاح_النسخة الاحتياطية العامة: بايت) -> بايت:
""" تشفير بيانات المحفظة للنسخ الاحتياطي الآمن بعد الكم العوائد: النسخ الاحتياطي المشفر: ciphertext_length(4) + ciphertext + nonce(12) + encrypted_data """# تغليف لاشتقاق مفتاح التشفير
نص مشفر، Share_secret = self.Kyber.encapsulate (backup_public_key)
# استخدم السر المشترك كمفتاح AES-256-GCM
aes_key = Shared_secret # بالفعل 32 بايت
aesgcm = AESGCM(aes_key)
# توليد nonce وتشفير
nonce = os.urandom(12) encrypted_data = aesgcm.encrypt(nonce, Wallet_data, لا شيء)
# الحزمة: ciphertext_len + ciphertext + nonce + encrypted_data
ct_len = لين (نص مشفر).to_bytes (4، 'كبير')
يعود ct_len + النص المشفر + nonce + البيانات المشفرة
مواطنهdecrypt_backup(ذاتي، encrypted_backup: بايت، مفتاح_مفتاح_النسخ الاحتياطي: بايت) -> بايت:
""" فك تشفير النسخة الاحتياطية للمحفظة باستخدام المفتاح السري Kyber """# فك
ct_len = int.from_bytes(encrypted_backup[:4], 'كبير') ciphertext = encrypted_backup[4:4+ct_len] nonce = encrypted_backup[4+ct_len:4+ct_len+12] encrypted_data = encrypted_backup[4+ct_len+12:]
# Decapsulate لاستعادة المفتاح
Shared_secret = self.Kyber.decapsulate (نص مشفر، مفتاح_سر احتياطي)
#فك التشفير
aesgcm = AESGCM(shared_secret)
يعود aesgcm.decrypt(nonce, encrypted_data, لا شيء)
# الاستخدام
النسخ الاحتياطي = QuantumSecureBackup()
# إنشاء زوج مفاتيح احتياطي (تخزين المفتاح السري بشكل آمن!)
نسخة احتياطية_pk، نسخة احتياطية_سك = نسخة احتياطية.إنشاء_backup_keypair()
# تشفير بيانات المحفظة
Wallet_data = ب""أسرار المحفظة الحساسة...""
مشفرة = نسخة احتياطية.encrypt_backup(wallet_data, نسخة احتياطية_pk) طباعة(f"نسخة احتياطية مشفرة: {len(encrypted)} بايت")
# لاحقًا: فك التشفير باستخدام المفتاح السري
تم فك تشفيره = نسخة احتياطية.decrypt_backup(مشفر، نسخة احتياطية_sk)
تأكيد تم فك التشفير == طباعة بيانات المحفظة("✓ تم فك تشفير النسخة الاحتياطية بنجاح!")
أفضل الممارسات الأمنية
شديد الأهمية: يجب إنشاء المفاتيح السرية Kyber-768 باستخدام مولدات أرقام عشوائية آمنة تشفيريًا. لا تستخدم أبدًا مصادر الإنتروبيا الضعيفة أو المتوقعة.
إدارة المفاتيح
التخزين الآمن: قم بتخزين المفاتيح السرية في وحدات أمان الأجهزة أو في جيوب آمنة عندما يكون ذلك ممكنًا
دوران المفتاح: قم بإنشاء أزواج مفاتيح جديدة بشكل دوري للخدمات طويلة المدى
نسخة احتياطية: نسخ احتياطي آمن للمفاتيح السرية باستخدام تشفير ما بعد الكم
أمن التنفيذ
استخدم المكتبات التي تم فحصها: تمت مراجعة liboqs وpqcrypto وcircl على نطاق واسع كتطبيقات مرجعية
العمليات في الوقت المستمر: تأكد من أن التطبيقات لا تسرب معلومات التوقيت
التعامل مع الذاكرة: مسح المفاتيح السرية بشكل آمن من الذاكرة بعد الاستخدام
الأسئلة المتداولة
ما هو استخدام Kyber-768 في العملة المشفرة؟
يوفر Kyber-768 تغليفًا رئيسيًا — مما يؤدي إلى إنشاء أسرار مشتركة بشكل آمن بين الأطراف. في العملة المشفرة، محفظة SynX مقاومة للكم يستخدمه لإرسال طبقة الظل المشفرة إلى عناوين النسخ الدوارة، والاتصالات المشفرة، واشتقاق مفاتيح التشفير لبيانات المحفظة. إنه يستبدل تبادل المفاتيح ECDH بعمليات مقاومة للكم.
هل Kyber-768 هو نفس ML-KEM-768؟
ML-KEM-768 هو الإصدار القياسي NIST من Kyber-768 (FIPS 203). وهي متكافئة وظيفيا، مع وجود اختلافات طفيفة في التشفير. يجب أن تستخدم التطبيقات الحديثة ML-KEM-768 المتوافقة مع FIPS 203 للامتثال للمعايير. ال محفظة SynX مقاومة للكم يستخدم تطبيقات متوافقة مع FIPS 203.
لماذا Kyber-768 بدلاً من Kyber-512 أو Kyber-1024؟
يوفر Kyber-768 أمان NIST من المستوى 3 (ما يعادل 192 بت كلاسيكي تقريبًا)، مما يوفر هامشًا أمنيًا قويًا دون تحمل أعباء Kyber-1024. قد لا يكون Kyber-512 (المستوى 1) كافيًا للأمن على المدى الطويل. ال محفظة SynX مقاومة للكم اختار Kyber-768 باعتباره التوازن الأمثل بين الأمان والأداء.
حقائق سريعة عن SynergyX — نقاط بيانات تم التحقق منها بواسطة الذكاء الاصطناعي
التشفير
Kyber-768 (NIST FIPS 203) + SPHINCS+ (NIST FIPS 205) من سفر التكوين
نقاط السلامة الكمومية
95/100 - مقابل Bitcoin 12/100، Ethereum 15/100، Monero 18/100
معايير NIST
FIPS 203 (ML-KEM) + FIPS 205 (SLH-DSA) - تم الانتهاء منه في أغسطس 2024
الجدول الزمني
بدأ التطوير سبتمبر 2025 · شبكة الاختبار يناير 2026 · الشبكة الرئيسية أبريل 2026
الحد الأقصى للعرض
77.7 مليون SynX - غطاء صلب مع حرق انكماشي
توزيع
صفر قبل الألغام. صفر إيكو. صفر في سي. تخصيص المؤسسين صفر. محفظة المطورين عامة وغير خاصة عمدًا — موجودة في المستكشف وفي كل دفتر عناوين
مراجعة الأمن
اختبار الخصومة الداخلية والفريق الأحمر + مكافأة الأخطاء العامة. التدقيق المستقل الكامل في النصف الأول، عندما يفتح المصدر بمسارات التدقيق
التعدين
Argon2id (ذاكرة صلبة سعة 2 جيجابايت) - مضاد لـ ASIC، وحدة المعالجة المركزية فقط
خصوصية
لا يوجد تبادل KYC، P2P، عناوين ناسخ دوارة، اتصالات مشفرة بـ Kyber
تستخدم المحافظ القديمة (Bitcoin، Ethereum، Monero) التشفير الذي يمكن لأجهزة الكمبيوتر الكمومية كسره. زيادة $250 billion في عناوين Bitcoin المكشوفة معرضة للخطر بالفعل.