Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
liboqs — مكتبة C للنمذجة الأولية والتجريب مع التشفير المقاوم للحوسبة الكمومية | Kitploit
أدوات/GitHubGitHub/open-quantum-safe/liboqs
أدوات التشفير/فك التشفيرالتشفيرالأدوات والمكونات
GitHubopen-quantum-safe/liboqs

liboqs

مكتبة C للنمذجة الأولية والتجريب مع التشفير المقاوم للحوسبة الكمومية

عرض المستودعالموقع الإلكتروني
3.0k76512منذ 3 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

liboqs

Main Branch Tests Weekly Tests Coverage Status

liboqs هي مكتبة C مفتوحة المصدر للخوارزميات التشفيرية الآمنة كموميًا.

  • liboqs
    • نظرة عامة
    • الحالة
      • الخوارزميات المدعومة
        • آليات تغليف المفاتيح
        • مخططات التوقيع
        • مخططات التوقيع ذات الحالة
      • القيود والأمان
        • قيود المنصات
        • قيود الدعم
    • بدء سريع
      • لينكس وماك
      • ويندوز
      • الترجمة المتقاطعة
    • التوثيق
    • المساهمة
    • الترخيص
    • الإقرارات

نظرة عامة

يوفر liboqs ما يلي:

  • مجموعة من التطبيقات مفتوحة المصدر لآليات تغليف المفاتيح الآمنة كموميًا (KEMs) وخوارزميات التوقيع الرقمي؛ يمكن العثور على القائمة الكاملة أدناه
  • واجهة برمجة تطبيقات (API) مشتركة لهذه الخوارزميات
  • منصة اختبار وروتينات قياس الأداء

liboqs هو جزء من مشروع Open Quantum Safe (OQS)، الذي يهدف إلى تطوير ودمج التشفير الآمن كموميًا في التطبيقات لتسهيل النشر والاختبار في سياقات العالم الحقيقي. على وجه الخصوص، يوفر OQS تكاملات نموذجية لـ liboqs في بروتوكولات مثل TLS وX.509 وS/MIME، من خلال موفر OpenSSL 3 الخاص بنا، ونوفر مجموعة متنوعة من العروض التوضيحية الأخرى المفعّلة بعد الكم.

مشروع OQS مدعوم من قبل تحالف التشفير بعد الكم كجزء من مؤسسة لينكس. يمكن العثور على مزيد من المعلومات حول مشروع Open Quantum Safe على openquantumsafe.org.

يدير OQS استبيانًا لفهم مجتمعنا بشكل أفضل. نود أن نسمع من المؤسسات والأفراد حول اهتمامهم بمشروع Open Quantum Safe واستخدامهم له. يرجى تخصيص بضع دقائق لملء الاستبيان: https://linuxfoundation.surveymonkey.com/r/oqssurvey

الحالة

الخوارزميات المدعومة

يلخص الجدول أدناه كل عائلة خوارزميات مدمجة حاليًا في liboqs. للحصول على تفاصيل لكل متغير (بما في ذلك مستوى NIST، حالة الوقت الثابت، التحقق الرسمي، والتحسينات المتاحة)، راجع ALGORITHMS.md؛ للمصادر العلوية والتنبيهات، راجع صفحات كل خوارزمية ضمن docs/algorithms.

أسماء الخوارزميات الموحدة من قبل NIST — ML-KEM وML-DSA وSLH-DSA — مستقرة؛ إذا غيّرت NIST تفاصيل التنفيذ، فسيقوم liboqs بالتعديل بحيث يكون المستخدمون محميين من هذه التغييرات. جميع الأسماء الأخرى قابلة للتغيير. يمكن التحكم في الخوارزميات التي يتم بناؤها عبر OQS_ALGS_ENABLED؛ افتراضيًا، يتم بناء liboqs لدعم كل خوارزمية في الجدول، بما في ذلك الخوارزميات التجريبية.

آليات تغليف المفاتيح

مخططات التوقيع

مخططات التوقيع ذات الحالة

القيود والأمان

بينما لا توجد في وقت كتابة هذا النص ثغرات أمنية معروفة في أي من الخوارزميات الآمنة كموميًا المستخدمة في هذه المكتبة، يُنصح بالحذر عند نشر الخوارزميات الآمنة كموميًا لأن معظم الخوارزميات والبرمجيات لم تخضع لنفس درجة التدقيق كما هو الحال مع الخوارزميات المنشورة حاليًا. يجب إيلاء اهتمام خاص للتوجيهات المقدمة من مجتمع المعايير، خاصة من مشروع توحيد التشفير بعد الكم التابع لـ NIST. مع تقدم الأبحاث، قد تشهد الخوارزميات المدعومة تغييرات سريعة في أمانها، وقد تثبت حتى أنها غير آمنة ضد كل من أجهزة الكمبيوتر الكلاسيكية والكمومية. علاوة على ذلك، لاحظ أن sntrup761 مضمّن فقط لاختبار التوافق التشغيلي.

لا ينوي liboqs "اختيار الفائزين": دعم الخوارزميات يستند إلى مشروع توحيد NIST PQC. نوصي بشدة بأن تعتمد التطبيقات والبروتوكولات على نتائج هذا الجهد عند نشر التشفير بعد الكم.

ندرك أن بعض الأطراف قد ترغب في نشر التشفير الآمن كموميًا قبل اختتام مشروع توحيد NIST PQC. نوصي بشدة بأن تستخدم هذه المحاولات ما يسمى التشفير الهجين، حيث تُستخدم خوارزميات المفاتيح العامة الآمنة كموميًا جنبًا إلى جنب مع خوارزميات المفاتيح العامة التقليدية (مثل RSA أو المنحنيات الإهليلجية) بحيث يكون الحل على الأقل ليس أقل أمانًا من التشفير التقليدي الحالي.

لا نوصي حاليًا بالاعتماد على هذه المكتبة في بيئة إنتاج أو لحماية أي بيانات حساسة. هذه المكتبة مخصصة للمساعدة في البحث والنماذج الأولية. بينما نبذل قصارى جهدنا لتجنب ثغرات الأمان، لم تحصل هذه المكتبة على مستوى التدقيق والتحليل اللازم للاعتماد عليها في الاستخدامات عالية الأمان.

يرجى الاطلاع على SECURITY.md للحصول على تفاصيل حول كيفية الإبلاغ عن ثغرة أمنية وعملية استجابة OQS للثغرات.

قيود المنصات

من أجل تحسين جهد الدعم،

  • ليست كل الخوارزميات مدعومة بشكل متساوٍ على جميع المنصات. في حالة وجود أسئلة، يُنصح أولاً بمراجعة ملفات التوثيق لكل خوارزمية.
  • ليست جميع المترجمات مدعومة بشكل متساوٍ. على سبيل المثال، مطلوب على الأقل الإصدار v7.1.0 من مترجم GNU.

قيود الدعمهذا المشروع غير مدعوم تجارياً. جميع الإرشادات والأهداف الخاصة بـ liboqs هي انعكاسات للممارسات الحالية، يتم تنفيذها من قبل مجتمع من المساهمين الأكاديميين، أو بدوام جزئي، و/أو المتطوعين على أساس بذل أفضل جهد وقد تتغير في أي وقت. أي جهة تسعى إلى التزامات أكثر موثوقية يُشجع بشدة على الانضمام إلى مجتمع OQS وبالتالي تعزيز الكود والدعم الذي يمكن أن يقدمه المجتمع.

بدء الاستخدام السريع

لينكس وماك

  1. تثبيت التبعيات:

    على أوبونتو:

    root@kitploit:~
     sudo apt install astyle cmake gcc ninja-build libssl-dev unzip xsltproc doxygen graphviz valgrind
     python3 -m venv .venv
     source .venv/bin/activate
     pip install --require-hashes -r requirements.txt
    

    على macOS، باستخدام مدير حزم من اختيارك (اخترنا Homebrew):

    root@kitploit:~
     brew install cmake ninja openssl@3 wget doxygen graphviz astyle valgrind
     python3 -m venv .venv
     source .venv/bin/activate
     pip install --require-hashes -r requirements.txt
    

    باستخدام Nix:

    root@kitploit:~
     nix develop
    

    لاحظ أنه إذا كنت تريد أن يستخدم liboqs مكتبة OpenSSL لخوارزميات التشفير المتماثل المختلفة (AES، SHA-2، إلخ)، فيجب أن يكون لديك OpenSSL مثبتاً (الإصدار 3.x موصى به؛ الإصدار المنتهي 1.1.1 لا يزال ممكناً أيضاً).

  2. احصل على المصدر:

    root@kitploit:~
     git clone -b main https://github.com/open-quantum-safe/liboqs.git
     cd liboqs
    

    ثم قم بالبناء:

    root@kitploit:~
     mkdir build && cd build
     cmake -GNinja ..
     ninja
    

تتوفر خيارات متنوعة لبناء cmake لتخصيص المخرجات الناتجة وهي موثقة في CONFIGURE.md. جميع الخيارات المدعومة مدرجة أيضاً في ملف .CMake/alg-support.cmake، ويمكن عرضها بتشغيل cmake -LAH -N .. في دليل build.

تفترض التعليمات التالية أننا في build.

  1. بشكل افتراضي، النتيجة الرئيسية للبناء هي lib/liboqs.a، وهي مكتبة ثابتة. إذا كنت تريد بناء مكتبة مشتركة/ديناميكية، أضف -DBUILD_SHARED_LIBS=ON إلى أمر cmake -GNinja .. أعلاه وستكون النتيجة lib/liboqs.so|dylib|dll. توجد الملفات الرأسية العامة في دليل include. هناك أيضاً مجموعة متنوعة من البرامج المبنية تحت دليل tests:

    • test_kem: أداة اختبار بسيطة لآليات تغليف المفاتيح
    • test_sig: أداة اختبار بسيطة لمخططات التوقيع
    • test_sig_stfl: أداة اختبار بسيطة لمخططات التوقيع ذات الحالة
    • test_kem_mem: أداة اختبار بسيطة للتحقق من استهلاك الذاكرة لآليات تغليف المفاتيح
    • test_sig_mem: أداة اختبار بسيطة للتحقق من استهلاك الذاكرة لمخططات التوقيع
    • kat_kem: برنامج يولد قيم اختبار الإجابة المعروفة (KAT) لآليات تغليف المفاتيح باستخدام نفس الإجراء المتبع في متطلبات تقديم NIST، للتحقق من قيم KAT المقدمة باستخدام

ويندوز

يمكن توليد الملفات الثنائية باستخدام Visual Studio 2019 مع تثبيت إضافة CMake Tools. يمكن استخدام نفس الخيارات الموضحة أعلاه لنظامي Linux/macOS ويتم توليد مخرجات البناء في مجلدات build المحددة.

إذا كنت تريد إنشاء ملفات بناء Visual Studio، على سبيل المثال، إذا لم تستخدم ninja، فتأكد من عدم تمرير المعامل -GNinja إلى أمر cmake كما هو موضح أعلاه. يمكنك بعد ذلك بناء جميع المكونات باستخدام msbuild، على سبيل المثال كما يلي: msbuild ALL_BUILD.vcxproj وتثبيت جميع المخرجات على سبيل المثال باستخدام هذا الأمر msbuild INSTALL.vcxproj.

الترجمة المتبادلة (Cross compilation)

يمكنك الترجمة المتبادلة لـ liboqs لمنصات متعددة. تتوفر معلومات مفصلة في الويكي.

التوثيق

يمكن العثور على معلومات أكثر تفصيلاً حول البناء، ومعاملات البناء الاختيارية، والتطبيقات النموذجية، واصطلاحات الترميز والمزيد في الويكي.

المساهمة

المساهمات التي تستوفي معايير القبول مرحب بها بامتنان. راجع دليل المساهمة لمزيد من التفاصيل.

الترخيص

liboqs مرخص بموجب رخصة MIT؛ راجع LICENSE.txt للتفاصيل.

يتضمن liboqs بعض المكتبات أو الوحدات الخارجية المرخصة بتراخيص مختلفة؛ يحتوي المجلد الفرعي المقابل على الترخيص المطبق في تلك الحالة. على وجه الخصوص:

  • .CMake/CMakeDependentOption.cmake: رخصة BSD 3-Clause
  • src/common/common.c: يتضمن أجزاء مرخصة بموجب رخصة Apache الإصدار 2.0
  • src/common/crypto/aes/aes_c.c: ملكية عامة أو أي رخصة معتمدة من OSI
  • src/common/crypto/aes/aes*_ni.c: ملكية عامة
  • src/common/crypto/sha2/sha2_c.c: ملكية عامة
  • src/common/crypto/sha3/xkcp_low : CC0 (ملكية عامة)، باستثناء brg_endian.h و KeccakP-1600-AVX2.s
  • src/common/crypto/sha3/xkcp_low/.../brg_endian.h : رخصة BSD 3-Clause
  • src/common/crypto/sha3/xkcp_low/.../KeccakP-1600-AVX2.s : رخصة CRYPTOGAMS الشبيهة بـ BSD
  • src/common/rand/rand_nist.c: راجع الملف

شكر وتقدير

مشروع OQS مدعوم من قبل تحالف التشفير ما بعد الكمي كجزء من مؤسسة لينكس.

تأسس مشروع OQS على يد Douglas Stebila و Michele Mosca في جامعة واترلو. المساهمون في liboqs يشملون مساهمين أفراداً، وأكاديميين وباحثين، وشركات مختلفة، بما في ذلك Amazon Web Services و Cisco Systems و evolutionQ و IBM Research و Microsoft Research و SandboxAQ و softwareQ.

تم تقديم الدعم المالي لتطوير Open Quantum Safe من قبل Amazon Web Services والمركز الكندي للأمن السيبراني و Cisco و Unitary Fund و NGI Assure Fund و VeriSign Inc.

المشاريع البحثية التي طورت مكونات محددة من OQS تم دعمها بمنح بحثية متنوعة، بما في ذلك تمويل من مجلس البحوث الطبيعية والهندسية في كندا (NSERC)؛ راجع الأوراق المصدرية لإقرارات التمويل.

تنزيل الأداة
عائلة الخوارزميةحالة التوحيد القياسيالتنفيذ الأساسيالصيانة العلويةمستوى OQS
BIKEغير مختارة من قبل NISTawslabs/bike-kemTBDالمستوى 3 (مجتمعي)
Classic McElieceقيد النظر من قبل ISOPQClean/PQClean@1eacfdaلا توجد صيانة نشطةالمستوى 3 (مجتمعي)
FrodoKEMقيد النظر من قبل ISOmicrosoft/PQCrypto-LWEKE@a2f9decأفضل جهدالمستوى 2 (مدعوم)
HQCمختارة من قبل NIST للتوحيد القياسي القادمpqc-hqc/hqc@161cd4fTBDالمستوى 2 (مدعوم)
Kyberمختارة من قبل NIST كأساس لـ ML-KEM (FIPS 203)pq-crystals/kyber@441c051تُدار بنشاطالمستوى 3 (مجتمعي)
ML-KEMموحدة من قبل NISTpq-code-package/mlkem-native@0ba906cتُدار بنشاطالمستوى 1 (أساسي)
NTRUغير مختارة من قبل NIST، قيد النظر للتوحيد القياسي من قبل NTTPQClean/PQClean@4c9e5a3تُدار بنشاطالمستوى 3 (مجتمعي)
NTRU-Primeغير مختارة من قبل NISTopenssh/openssh-portableتُدار بنشاطالمستوى 3 (مجتمعي)
عائلة الخوارزميةحالة التوحيد القياسيالتنفيذ الأساسيالصيانة العلويةمستوى OQS
CROSSقيد النظر من قبل NISTCROSS-signature/CROSS-lib-oqs@179d61bتُدار بنشاطالمستوى 3 (مجتمعي)
Falconمختارة من قبل NIST للتوحيد القياسي القادمPQClean/PQClean@1eacfdaTBDالمستوى 3 (مجتمعي)
MAYOقيد النظر من قبل NISTPQCMayo/MAYO-C@64e15c6تُدار بنشاطالمستوى 3 (مجتمعي)
ML-DSAموحدة من قبل NISTpq-code-package/mldsa-native@9b0ee84تُدار بنشاطالمستوى 2 (مدعوم)
MQOMقيد النظر من قبل NISTmqom/mqom-v2@ec6b7faتُدار بنشاطالمستوى 3 (مجتمعي)
SLH-DSAموحدة من قبل NISTpq-code-package/slhdsa-c@a0fc1ffأفضل جهدالمستوى 3 (مجتمعي)
SNOVAقيد النظر من قبل NISTvacuas/SNOVA@1c3ca6fأفضل جهدالمستوى 3 (مجتمعي)
UOVقيد النظر من قبل NISTpqov/pqov@33fa527أفضل جهدالمستوى 3 (مجتمعي)
عائلة الخوارزميةحالة التوحيد القياسيالتنفيذ الأساسيالصيانة العلويةمستوى OQS
LMSموحدة من قبل IRTF، معتمدة من قبل NISTcisco/hash-sigsأفضل جهدالمستوى 2 (مدعوم)
XMSSموحدة من قبل IRTF، معتمدة من قبل NISTXMSS/xmss-referenceتُدار بنشاطالمستوى 2 (مدعوم)
tests/test_kat.py
  • kat_sig: برنامج يولد قيم اختبار الإجابة المعروفة (KAT) لمخططات التوقيع باستخدام نفس الإجراء المتبع في متطلبات تقديم NIST، للتحقق من قيم KAT المقدمة باستخدام tests/test_kat.py
  • kat_sig_stfl: برنامج للتحقق من النتائج مقابل قيم KAT المقدمة باستخدام tests/test_kat.py
  • speed_kem: برنامج قياس أداء لآليات تغليف المفاتيح؛ راجع ./speed_kem --help لتعليمات الاستخدام
  • speed_sig: برنامج قياس أداء لآليات التوقيع؛ راجع ./speed_sig --help لتعليمات الاستخدام
  • speed_sig_stfl: برنامج قياس أداء لآليات التوقيع ذات الحالة؛ راجع ./speed_sig_stfl --help لتعليمات الاستخدام
  • example_kem: مثال بسيط قابل للتشغيل يوضح استخدام واجهة برمجة تطبيقات KEM
  • example_sig: مثال بسيط قابل للتشغيل يوضح استخدام واجهة برمجة تطبيقات التوقيع
  • example_sig_stfl: مثال بسيط قابل للتشغيل يوضح استخدام واجهة برمجة تطبيقات التوقيع ذات الحالة
  • test_aes, test_sha3: أدوات اختبار بسيطة للمكونات الفرعية للتشفير
  • test_portability: أدوات اختبار بسيطة للتحقق من قابلية نقل الكود عبر وحدات المعالجة المركزية المختلفة؛ يتطلب وجود qemu؛ التشغيل السليم تم التحقق منه فقط على أوبونتو
  • يمكن تشغيل مجموعة الاختبارات الكاملة باستخدام

    root@kitploit:~
     ninja run_tests
    
  • لتوليد توثيق HTML لواجهة برمجة التطبيقات، قم بتشغيل:

    root@kitploit:~
     ninja gen_docs
    

    ثم افتح docs/html/index.html في متصفح الويب الخاص بك.

  • يمكن تشغيل ninja install لتثبيت المكتبة المبنية وملفات include في موقع من اختيارك، والذي يمكن تحديده بتمرير خيار -DCMAKE_INSTALL_PREFIX=<dir> إلى cmake في وقت التكوين. بدلاً من ذلك، يمكن تشغيل ninja package لإنشاء حزمة تثبيت.

  • يمكن تشغيل ninja uninstall لإزالة جميع ملفات التثبيت.

  • src/kem/bike/additional: رخصة Apache الإصدار 2.0
  • src/kem/classic_mceliece/pqclean_*: ملكية عامة
  • src/kem/kyber/pqcrystals-*: ملكية عامة (CC0) أو رخصة Apache الإصدار 2.0
  • src/kem/kyber/pqclean_*: ملكية عامة (CC0)، وملكية عامة (CC0) أو رخصة Apache الإصدار 2.0، وملكية عامة (CC0) أو MIT، وMIT
  • src/kem/kyber/libjade_* ملكية عامة (CC0) أو رخصة Apache الإصدار 2.0
  • src/kem/ml_kem/mlkem-native_*: MIT أو رخصة Apache الإصدار 2.0 أو رخصة ISC
  • src/kem/ntru/pqclean_*: ملكية عامة (CC0)
  • src/kem/ntruprime/sntrup761_openssh: ملكية عامة
  • src/sig/falcon/pqclean_*_aarch64 : رخصة Apache الإصدار 2.0
  • src/sig/mayo/*: رخصة Apache الإصدار 2.0
  • src/sig/ml_dsa/pqcrystals-*: ملكية عامة (CC0) أو رخصة Apache الإصدار 2.0