إصدار التنفيذ المرجعي لوظيفة تجزئة التشفير BLAKE3 1.0

تم إصدار تطبيق مرجعي لوظيفة التجزئة المشفرة BLAKE3 1.0، ويتميز بأداء حساب التجزئة العالي جدًا مع ضمان الموثوقية على مستوى SHA-3. في اختبار إنشاء التجزئة لملف بحجم 16 كيلو بايت، يتفوق BLAKE3 بمفتاح 256 بت على SHA3-256 بمقدار 17 مرة، وSHA-256 بمقدار 14 مرة، وSHA-512 بمقدار 9 مرات، وSHA-1 بمقدار 6 مرات، وBLAKE2b - 5 مرات. لا تزال هناك فجوة كبيرة عند معالجة كميات كبيرة جدًا من البيانات، على سبيل المثال، تبين أن BLAKE3 أسرع بـ 256 مرات من SHA-8 عند حساب التجزئة مقابل 1 جيجابايت من البيانات العشوائية. يتوفر رمز التنفيذ المرجعي BLAKE3 في إصدارات C وRust ضمن نطاق عام مزدوج (CC0) وترخيص Apache 2.0.

إصدار التنفيذ المرجعي لوظيفة تجزئة التشفير BLAKE3 1.0

تم تصميم وظيفة التجزئة لتطبيقات مثل التحقق من سلامة الملفات ومصادقة الرسائل وإنشاء البيانات للتوقيعات الرقمية المشفرة. BLAKE3 ليس مخصصًا لتجزئة كلمات المرور، لأنه يهدف إلى حساب التجزئة في أسرع وقت ممكن (بالنسبة لكلمات المرور، يوصى باستخدام وظائف التجزئة البطيئة Yescrypt أو bcrypt أو scrypt أو Argon2). وظيفة التجزئة قيد النظر غير حساسة لحجم البيانات المجزأة ومحمية من الهجمات على اختيار التصادم والعثور على الصورة المسبقة.

تم تطوير الخوارزمية من قبل خبراء التشفير المشهورين (جاك أوكونور، جان فيليب أوماسون، صامويل نيفيس، زوكو ويلكوكس-أوهيرن) ويستمرون في تطوير خوارزمية BLAKE2 ويستخدم آلية باو لتشفير شجرة البلوكشين . على عكس BLAKE2 (BLAKE2b، BLAKE2s)، يقدم BLAKE3 خوارزمية واحدة لجميع المنصات، غير مرتبطة بعمق البت وحجم التجزئة.

تم تحقيق زيادة في الأداء من خلال تقليل عدد الجولات من 10 إلى 7 وتجزئة الكتل بشكل منفصل في أجزاء بحجم 1 كيلو بايت. وفقا للمبدعين، فقد وجدوا دليلا رياضيا مقنعا على أنه من الممكن القيام بـ 7 جولات بدلا من 10 مع الحفاظ على نفس المستوى من الموثوقية (للتوضيح، يمكننا إعطاء مثال على خلط الفاكهة في الخلاط - بعد 7 ثواني) لقد تم خلط الفاكهة بالكامل بالفعل، ولن يؤثر 3 ثوانٍ إضافية على تماسك الخليط). ومع ذلك، أعرب بعض الباحثين عن شكوكهم، معتقدين أنه حتى لو كانت 7 جولات كافية حاليًا لمواجهة جميع الهجمات المعروفة على التجزئة، فإن 3 جولات إضافية قد تكون مفيدة إذا تم تحديد هجمات جديدة في المستقبل.

أما بالنسبة للتقسيم إلى كتل، في BLAKE3 يتم تقسيم الدفق إلى أجزاء بحجم 1 كيلو بايت ويتم تجزئة كل قطعة بشكل مستقل. بناءً على تجزئات القطع، يتم تشكيل تجزئة واحدة كبيرة بناءً على شجرة ميركل الثنائية. يتيح لنا هذا التقسيم حل مشكلة موازنة معالجة البيانات عند حساب التجزئة - على سبيل المثال، يمكنك استخدام تعليمات SIMD ذات 4 خيوط لحساب التجزئة المكونة من 4 كتل في نفس الوقت. تقوم وظائف تجزئة SHA-* التقليدية بمعالجة البيانات بشكل تسلسلي.

مميزات بلاك 3:

  • الأداء العالي، BLAKE3 أسرع بكثير من MD5، SHA-1، SHA-2، SHA-3 وBLAKE2.
  • الأمان، بما في ذلك مقاومة هجمات استطالة الرسائل التي يكون SHA-2 عرضة لها؛
  • متوفر في Rust، ومُحسّن لتعليمات SSE2 وSSE4.1 وAVX2 وAVX-512 وNEON.
  • ضمان توازي العمليات الحسابية على أي عدد من المواضيع وقنوات SIMD.
  • إمكانية التحديث المتزايد والمعالجة المؤكدة للتدفقات؛
  • يُستخدم في أوضاع PRF وMAC وKDF وXOF وكتجزئة عادية؛
  • خوارزمية واحدة لجميع البنيات، سريعة على كل من أنظمة x86-64 ومعالجات ARM 32 بت.

الاختلافات الرئيسية بين BLAKE3 وBLAKE2:

  • استخدام بنية الشجرة الثنائية التي تسمح بتوازي غير محدود في حسابات التجزئة.
  • تقليل عدد الجولات من 10 إلى 7.
  • ثلاثة أوضاع للتشغيل: التجزئة، والتجزئة بمفتاح (HMAC)، وإنشاء المفتاح (KDF).
  • لا يوجد حمل إضافي عند التجزئة باستخدام مفتاح بسبب استخدام المنطقة التي كانت تشغلها مسبقًا كتلة المعلمات الرئيسية.
  • آلية تشغيل مدمجة على شكل وظيفة ذات نتيجة ممتدة (XOF، وظيفة الإخراج القابلة للتمديد)، مما يسمح بالتوازي وتحديد المواقع (البحث).

المصدر: opennet.ru

إضافة تعليق