SHA-3
SHA-3 ( خوارزمية التجزئة الآمنة 3 ) هي أحدث [ 4 ] عضو في عائلة معايير خوارزمية التجزئة الآمنة ، والتي أصدرها المعهد الوطني للمعايير والتكنولوجيا في 5 أغسطس 2015. [ 5 ] [ 6 ] [ 7 ] على الرغم من كونها جزءًا من نفس سلسلة المعايير، إلا أن SHA-3 تختلف داخليًا عن بنية MD5 الشبيهة بـ SHA-1 و SHA-2 .
SHA -3 هي مجموعة فرعية من عائلة Keccak ( تُلفظ / ˈkɛtʃæk / أو / ˈkɛtʃɑːk / ) ، [ 8 ] [ 9 ] التي صممها غيدو بيرتوني ، وجوان دايمين ، ومايكل بيترز ، وجيل فان آش ، استنادًا إلى RadioGatún . وقد اقترح مطورو Keccak استخدامات إضافية لهذه الوظيفة، لم تُعتمد بعد من قِبل المعهد الوطني للمعايير والتكنولوجيا (NIST)، بما في ذلك تشفير التدفق ، ونظام التشفير الموثق ، ونظام تجزئة "شجري" لتسريع التجزئة على بعض البنى، [ 10 ] [ 11 ] وتشفيرات AEAD المعروفة باسم Keyak وKetje. [ 12 ] [ 13 ]
يعتمد برنامج Keccak على منهجية مبتكرة تُسمى بناء الإسفنج . [ 14 ] يعتمد بناء الإسفنج على تبديل شبه عشوائي ، ويسمح بإدخال أي كمية من البيانات ("امتصاصها" وفقًا لمصطلحات الإسفنج)، وإخراج أي كمية من البيانات ("ضغطها")، مع العمل كدالة شبه عشوائية بالنسبة لجميع المدخلات السابقة. وهذا ما يمنحه مرونة كبيرة.
اعتبارًا من عام 2022،لا تعتزم NIST سحب SHA-2 أو إزالتها من معيار التجزئة الآمن المُعدَّل. [ 15 ] والغرض من SHA-3 هو إمكانية استبدالها مباشرةً بـ SHA-2 في التطبيقات الحالية عند الضرورة، وتحسين متانة مجموعة أدوات خوارزميات التجزئة الشاملة لـ NIST بشكلٍ ملحوظ. [ 16 ]
بالنسبة لأحجام الرسائل الصغيرة، يقترح مبتكرو خوارزميات Keccak ووظائف SHA-3 استخدام وظيفة KangarooTwelve الأسرع مع معلمات معدلة ووضع تجزئة شجري جديد بدون تكلفة إضافية.
تاريخ
خوارزمية Keccak هي من ابتكار غيدو بيرتوني، وجوان دايمين (الذي شارك أيضًا في تصميم شيفرة Rijndael مع فنسنت ريجمان )، ومايكل بيترز، وجيل فان آش . وهي مبنية على تصميمات دوال التجزئة السابقة PANAMA و RadioGatún . صُممت PANAMA بواسطة دايمين وكريغ كلاب عام 1998. أما RadioGatún، وهي خليفة PANAMA، فقد صممها دايمين وبيترز وفان آش، وعُرضت في ورشة عمل NIST للتجزئة عام 2006. [ 17 ] وقد أُتيحت النسخة المرجعية منها للعموم . [ 18 ]
في عام 2006، بدأ المعهد الوطني للمعايير والتكنولوجيا (NIST) بتنظيم مسابقة دالة التجزئة الخاصة به لإنشاء معيار تجزئة جديد، وهو SHA-3. ولا يُقصد من SHA-3 أن يحل محل SHA-2 ، إذ لم يتم إثبات أي هجوم كبير على SHA-2 علنًا.بسبب الهجمات الناجحة على MD5 و SHA-0 و SHA-1 ، [ 19 ] [ 20 ] أدرك المعهد الوطني للمعايير والتكنولوجيا (NIST) الحاجة إلى تجزئة تشفيرية بديلة ومختلفة، والتي أصبحت SHA-3.
بعد فترة إعداد، كان من المقرر تقديم طلبات الالتحاق بحلول نهاية عام 2008. قُبلت خوارزمية Keccak كواحدة من بين 51 مرشحًا. في يوليو 2009، تم اختيار 14 خوارزمية للجولة الثانية. وتأهلت Keccak إلى الجولة الأخيرة في ديسمبر 2010. [ 21 ]
خلال المسابقة، سُمح للمشاركين بتعديل خوارزمياتهم لمعالجة المشكلات التي تم اكتشافها. التغييرات التي أُجريت على Keccak هي: [ 22 ] [ 23 ]
- تمت زيادة عدد الجولات من 12 + ℓ إلى 12 + 2ℓ ليكون أكثر تحفظًا فيما يتعلق بالأمن.
- تم تغيير طريقة حشو الرسائل من مخطط أكثر تعقيدًا إلى النمط البسيط 10 * 1 الموضح أدناه.
- تم رفع المعدل r إلى الحد الأمني، بدلاً من تقريبه إلى أقرب قوة للعدد 2.
في 2 أكتوبر 2012، تم اختيار كيكاك كفائز في المسابقة. [ 8 ]
في عام 2014، نشر المعهد الوطني للمعايير والتكنولوجيا (NIST) مسودة معيار FIPS 202 بعنوان "معيار SHA-3: التجزئة القائمة على التبديل ووظائف الإخراج القابلة للتوسيع". [ 24 ] تمت الموافقة على معيار FIPS 202 في 5 أغسطس 2015. [ 25 ]
في 5 أغسطس 2015، أعلن المعهد الوطني للمعايير والتكنولوجيا (NIST) أن SHA-3 أصبح معيارًا للتجزئة. [ 26 ]
تراجع الجدل
في أوائل عام 2013، أعلن المعهد الوطني للمعايير والتكنولوجيا (NIST) أنه سيختار قيمًا مختلفة لـ "السعة"، وهي معيار القوة مقابل السرعة الإجمالية، لمعيار SHA-3، مقارنةً بالنسخة المقدمة. [ 27 ] [ 28 ] وقد أثارت هذه التغييرات بعض الجدل.
تطلّبت مسابقة دوال التجزئة دوال تجزئة لا تقلّ أمانًا عن دوال SHA-2. وهذا يعني أن يكون لمخرج مكون من d بت مقاومة d /2 بت لهجمات التصادم ، ومقاومة d بت لهجمات الصورة المسبقة ، وهي أقصى قيمة يمكن تحقيقها لمخرج مكون من d بت. يسمح برهان أمان Keccak بمستوى أمان قابل للتعديل بناءً على "سعة" c ، مما يوفر مقاومة c /2 بت لكل من هجمات التصادم وهجمات الصورة المسبقة. ولتلبية قواعد المسابقة الأصلية، اقترح مطوّرو Keccak أن تكون c = 2d . وكان التغيير المعلن هو قبول نفس مستوى الأمان d /2 بت لجميع أنواع الهجمات وتوحيد c = d . وكان من شأن ذلك تسريع Keccak من خلال السماح بتجزئة d بت إضافية من المدخلات في كل تكرار. ومع ذلك، لم تعد دوال التجزئة بدائل مباشرة بنفس مقاومة الصورة المسبقة لـ SHA-2. كان سيتم تقسيمه إلى النصف، مما يجعله عرضة للتطورات في الحوسبة الكمومية، والتي من شأنها أن تقسمه إلى النصف مرة أخرى. [ 29 ]
في سبتمبر 2013، اقترح دانيال ج. بيرنشتاين، عبر القائمة البريدية لمنتدى التجزئة التابع للمعهد الوطني للمعايير والتكنولوجيا (NIST) [ 30 ] ، تعزيز أمان خوارزمية Keccak بسعة 576 بت، والتي كانت مقترحة في الأصل كخيار افتراضي، بالإضافة إلى مواصفات SHA-3 التي لم تكن مُدرجة فيها. [ 31 ] كان من شأن هذا أن يوفر على الأقل خوارزميتي SHA3-224 وSHA3-256 بنفس مقاومة الصورة المسبقة التي تتمتع بها خوارزميات SHA-2 السابقة، بينما كانت خوارزميتا SHA3-384 وSHA3-512 ستتمتعان بمقاومة صورة مسبقة أقل بكثير من خوارزميات SHA-2 السابقة. في أواخر سبتمبر، رد فريق Keccak موضحًا أنهم اقترحوا أمانًا بسعة 128 بت من خلال تحديد c = 256 كخيار مُتاح بالفعل في اقتراحهم لخوارزمية SHA-3. [ 32 ] على الرغم من أن السعة المُخفّضة كانت مُبرّرة في رأيهم، إلا أنهم، في ضوء الردود السلبية، اقترحوا رفع السعة إلى c = 512 بت لجميع الحالات. سيكون هذا مماثلاً لأي معيار سابق حتى مستوى أمان 256 بت، مع توفير كفاءة معقولة، [ 33 ] ولكنه لا يضاهي مقاومة الصور المسبقة 384/512 بت التي توفرها خوارزميتا SHA2-384 وSHA2-512. وقد ذكر المؤلفون أن "الادعاء بمستويات قوة أمان أعلى من 256 بت أو الاعتماد عليها أمرٌ لا معنى له".
في أوائل أكتوبر 2013، انتقد بروس شناير قرار المعهد الوطني للمعايير والتكنولوجيا (NIST) على أساس آثاره الضارة المحتملة على قبول الخوارزمية، قائلاً:
يسود جو من انعدام الثقة. يخاطر المعهد الوطني للمعايير والتكنولوجيا (NIST) بنشر خوارزمية لا يثق بها أحد ولا يستخدمها أحد (إلا من يُجبرون على ذلك). [ 34 ]
ثم تراجع لاحقاً عن تصريحه السابق قائلاً:
أخطأتُ حين كتبتُ أن المعهد الوطني للمعايير والتكنولوجيا (NIST) أجرى "تغييرات داخلية" على الخوارزمية. كان ذلك خطأً مني. لم يطرأ أي تغيير على تبديل Keccak. ما اقترحه المعهد هو تقليل سعة دالة التجزئة لتحسين الأداء. من مميزات Keccak أنها قابلة للتعديل بدرجة كبيرة. [ 34 ]
أعرب بول كراولي، خبير التشفير ومطور برامج أول في شركة تطوير برامج مستقلة، عن دعمه للقرار، قائلاً إن خوارزمية Keccak مصممة لتكون قابلة للتعديل، ولا يوجد مبرر لاختلاف مستويات الأمان ضمن عنصر أساسي واحد. وأضاف أيضاً:
نعم، من المؤسف بعض الشيء للمنافسة أنهم اشترطوا مستوى أمان معينًا للمشاركين، ثم نشروا معيارًا بمستوى مختلف. لكن لا يوجد ما يمكن فعله لتصحيح ذلك الآن، سوى إعادة فتح باب المنافسة. إن مطالبتهم بالتمسك بخطئهم لن يُحسّن الأمور لأحد. [ 35 ]
كان هناك بعض الالتباس حول احتمال إجراء تغييرات داخلية على خوارزمية Keccak، وقد أوضح الفريق الأصلي الأمر، مصرحًا بأن اقتراح المعهد الوطني للمعايير والتكنولوجيا (NIST) لخوارزمية SHA-3 هو مجموعة فرعية من عائلة Keccak، والتي يمكن توليد متجهات اختبار لها باستخدام الكود المرجعي المقدم للمسابقة، وأن هذا الاقتراح كان نتيجة سلسلة من المناقشات بينهم وبين فريق التجزئة التابع للمعهد الوطني للمعايير والتكنولوجيا. [ 36 ]
استجابةً للجدل الدائر، اقترح جون كيلسي من المعهد الوطني للمعايير والتكنولوجيا (NIST) في نوفمبر 2013 العودة إلى الاقتراح الأصلي c = 2d لجميع حالات استبدال SHA-2. [ 37 ] وقد تم تأكيد هذا التراجع في المسودات اللاحقة [ 38 ] وفي الإصدار النهائي. [ 5 ]
تصميم

تستخدم خوارزمية SHA-3 بنية الإسفنج [ 14 ] ، حيث تُمتص البيانات داخل الإسفنج، ثم تُستخرج النتيجة. في مرحلة الامتصاص، تُدمج كتل الرسائل باستخدام عملية XOR مع مجموعة فرعية من الحالة، والتي تُحوّل بدورها ككل باستخدام دالة تبديل (أو تحويل ).في مرحلة "الضغط"، تُقرأ كتل الإخراج من نفس المجموعة الفرعية من الحالة، بالتناوب مع دالة تحويل الحالة.يُطلق على حجم الجزء من الحالة الذي تتم كتابته وقراءته اسم "المعدل" (يرمز له بـويُطلق على حجم الجزء الذي لا يتأثر بالإدخال/الإخراج اسم "السعة" (يرمز لها بـتحدد السعة مستوى أمان النظام. ويبلغ الحد الأقصى لمستوى الأمان نصف السعة.
بالنظر إلى سلسلة بتات الإدخال، دالة الحشودالة التبديليعمل ذلك على كتل بت بعرض، معدلوطول الإخراجلدينا القدرةوالبناء الإسفنجيينتج عن ذلك سلسلة بتاتمن الطولكما يلي: [ 6 ] : 18
- قم بتوسيع المدخل N باستخدام دالة التوسيع، مما ينتج عنه سلسلة بتات موسعّة P بطول قابل للقسمة على(بحيث(عدد صحيح)
- قسّم P إلى n قطعة متتالية مكونة من r بت ، P0 ، ...، Pn - 1
- قم بتهيئة الحالة S إلى سلسلة من b بتات صفرية
- استيعاب المدخلات في الحالة: لكل كتلة P i :
- قم بتمديد P i في النهاية بسلسلة من c بتات صفرية، مما ينتج عنه واحد بطول b
- XOR ذلك مع S
- قم بتطبيق تبديل الكتلة f على النتيجة، مما ينتج عنه حالة جديدة S
- قم بتهيئة Z لتكون سلسلة نصية فارغة
- بينما يكون طول Z أقل من d :
- أضف أول r بت من S إلى Z
- إذا كان طول Z لا يزال أقل من d بت، فقم بتطبيق f على S ، مما ينتج عنه حالة جديدة S
- اقتطاع Z إلى d بت
إن حقيقة أن الحالة الداخلية S تحتوي على c بتات إضافية من المعلومات بالإضافة إلى ما يتم إخراجه إلى Z تمنع هجمات تمديد الطول التي تكون SHA-2 و SHA-1 و MD5 وغيرها من التجزئات القائمة على بنية Merkle–Damgård عرضة لها.
في خوارزمية SHA-3، تتكون الحالة S من مصفوفة 5 × 5 من الكلمات ذات w بت (حيث w = 64)، أي b = 5 × 5 × w = 5 × 5 × 64 = 1600 بت إجمالاً. كما تُعرَّف خوارزمية Keccak لأحجام كلمات أصغر من مضاعفات العدد 2 ، تصل إلى بت واحد (حالة إجمالية من 25 بت). يمكن استخدام أحجام الحالات الصغيرة لاختبار هجمات التحليل التشفيري، بينما يمكن استخدام أحجام الحالات المتوسطة (من w = 8200 بت إلى w = 32800 بت) في التطبيقات العملية الخفيفة. [ 12 ] [ 13 ]
في خوارزميات SHA3-224 وSHA3-256 وSHA3-384 وSHA3-512، تكون قيمة r أكبر من d ، لذا لا حاجة إلى تبديلات إضافية للكتل في مرحلة الضغط؛ حيث تمثل البتات d الأولى من الحالة قيمة التجزئة المطلوبة. مع ذلك، تسمح خوارزميتا SHAKE128 وSHAKE256 بطول إخراج عشوائي، وهو أمر مفيد في تطبيقات مثل حشو التشفير غير المتماثل الأمثل .
حشوة
لضمان إمكانية تقسيم الرسالة بالتساوي إلى كتل مكونة من r بت، يلزم إضافة حشو. يستخدم SHA-3 النمط 10...01 في دالة الحشو الخاصة به: بت 1، متبوعًا بصفر أو أكثر من بتات 0 (بحد أقصى r − 1 )، ثم بت 1 نهائي.
يحدث الحد الأقصى لعدد البتات الصفرية (r − 1) عندما يكون طول كتلة الرسالة الأخيرة r − 1 بت. ثم تُضاف كتلة أخرى بعد البت الأول (1)، تحتوي على r − 1 بتات صفرية قبل البت الأخير (1).
ستُضاف البتتان 1 حتى لو كان طول الرسالة قابلاً للقسمة على r . [ 6 ] : 5.1 في هذه الحالة، تُضاف كتلة أخرى إلى الرسالة، تحتوي على بت 1، متبوعة بكتلة من r - 2 بتات صفرية وبت 1 آخر. هذا ضروري حتى لا تُنتج رسالة طولها قابل للقسمة على r وتنتهي بما يشبه الحشو، نفس قيمة التجزئة التي تُنتجها الرسالة بعد إزالة تلك البتات.
البت الأول (1) مطلوب حتى لا تنتج الرسائل التي تختلف فقط في عدد قليل من البتات الإضافية (0) في النهاية نفس التجزئة.
يشير موضع البت الأخير (1) إلى معدل التشفير المستخدم (حشو متعدد المعدلات)، وهو أمر ضروري لضمان فعالية إثبات الأمان مع مختلف أنواع التشفير. وبدونه، ستكون أنواع التشفير المختلفة لنفس الرسالة القصيرة متطابقة حتى لحظة اقتطاعها.
تبديل الكتلة
التحويل الكتلي f ، وهو Keccak-f[1600] لـ SHA-3، هو تبديل يستخدم عمليات XOR و AND و NOT ، وهو مصمم لسهولة التنفيذ في كل من البرامج والأجهزة.
يتم تعريفها لأي حجم كلمة من مضاعفات العدد اثنين، w = 2 ℓ بت. يستخدم التقديم الرئيسي لخوارزمية SHA-3 كلمات 64 بت، ℓ = 6 .
يمكن اعتبار الحالة مصفوفة بتات بحجم 5 × 5 × w . لنفترض أن a [ i ][ j ][ k ] هو البت (5i + j ) × w + k من المدخلات، باستخدام اصطلاح ترقيم البتات ذي النهاية الصغرى وفهرسة الصفوف . أي أن i يحدد الصف، و j العمود، و k البت.
يتم إجراء العمليات الحسابية على المؤشر بتردد 5 للبعدين الأولين وبتردد w للبعد الثالث.
تتكون دالة تبديل الكتل الأساسية من 12 + 2 ℓ جولة من خمس خطوات:
- θ (ثيتا)
- احسب زوجية كل عمود من الأعمدة الخمسة ذات 5 بتات (320 عندما تكون w = 64 )، ثم قم بتطبيق عملية XOR عليها لدمجها مع عمودين متجاورين بنمط منتظم. وبالتحديد، a [ i ][ j ][ k ] ← a [ i ][ j ][ k ] ⊕ parity(a[0...4][ j -1][ k ]) ⊕ parity(a[0...4][ j +1][ k -1] )
- ρ (رو)
- قم بتدوير كل كلمة من الكلمات الـ 25 بتًا برقم مثلثي مختلف من 0، 1، 3، 6، 10، 15، ... وبالتحديد، لا يتم تدوير a [0][0]، وبالنسبة لجميع قيم t من 0 إلى 24 ، فإن a [ i ][ j ][ k ] ← a [ i ][ j ][ k −( t +1)( t +2)/2] ، حيث.
- π (باي)
- قم بتبديل الكلمات الـ 25 وفق نمط ثابت. a [3 i +2 j ][ i ] ← a [ i ][ j ] .
- χ (chi)
- يتم دمج البتات على طول الصفوف باستخدام x ← x ⊕ (¬ y & z ) . وبشكل أدق، a [ i ][ j ][ k ] ← a [ i ][ j ][ k ] ⊕ (¬ a [ i ][ j + 1 ][ k ] &a a [ i ][ j + 2 ][ k ]) . هذه هي العملية غير الخطية الوحيدة في SHA-3.
- ι (يوتا)
- تُجرى عملية XOR بين قيمة ثابتة في كل دورة وكلمة واحدة من حالة النظام. تحديدًا، في الدورة n ، حيث 0 ≤ m ≤ ℓ ، تُجرى عملية XOR بين [0][0][2 m −1] والبت m + 7 n من متتالية LFSR من الدرجة 8. هذا يُخلّ بالتناظر الذي تحافظ عليه الخطوات الأخرى.
سرعة
تعتمد سرعة تجزئة SHA-3 للرسائل الطويلة بشكل أساسي على حساب f = Keccak-f[1600] وعملية XOR بين S و P i الموسّعة ، وهي عملية تُجرى على b = 1600 بت. مع ذلك، بما أن البتات c الأخيرة من P i الموسّعة تساوي صفرًا، وعملية XOR مع الصفر لا تُنفذ أي عملية، يكفي إجراء عمليات XOR على r بت فقط ( r = 1600 − 2 × 224 = 1152 بت لـ SHA3-224، و1088 بت لـ SHA3-256، و832 بت لـ SHA3-384، و576 بت لـ SHA3-512). كلما انخفضت قيمة r (وبالعكس، كلما ارتفعت قيمة c = b − r = 1600 − r )، انخفضت كفاءة التجزئة ولكنها زادت أمانها، حيث يمكن إجراء عملية XOR على عدد أقل من بتات الرسالة في الحالة (وهي عملية سريعة) قبل كل تطبيق للدالة f المكلفة حسابيًا . وقد ذكر المؤلفون السرعات التالية لتطبيقات برمجية لخوارزمية Keccak-f[1600] بالإضافة إلى عملية XOR على 1024 بت، [ 1 ] وهو ما يتوافق تقريبًا مع خوارزمية SHA3-256:
- 57.4 cpb على IA-32، Intel Pentium 3 [ 39 ]
- 41 نقطة لكل بت على معالج IA-32+MMX، إنتل بنتيوم 3
- 20 نقطة لكل مليار على معالج IA-32+SSE، أو Intel Core 2 Duo، أو AMD Athlon 64
- 12.6 نقطة لكل مليار على جهاز نموذجي قائم على x86-64
- 6-7 cpb على IA-64 [ 1 ]
بالنسبة لخوارزمية SHA3-256 الدقيقة على معالجات x86-64، يقيس برنشتاين معدل 11.7-12.25 دورة لكل بت، اعتمادًا على المعالج. [ 40 ] : 7 وقد وُجهت انتقادات لخوارزمية SHA-3 لبطئها على معالجات ذات بنية مجموعة تعليمات (CPUs) لا تحتوي على تعليمات مُخصصة لحساب دوال Keccak بسرعة أكبر - فخوارزمية SHA2-512 أسرع بأكثر من الضعف من SHA3-512، وخوارزمية SHA-1 أسرع بأكثر من ثلاثة أضعاف على معالج Intel Skylake بتردد 3.2 جيجاهرتز. [ 41 ] وقد استجاب الباحثون لهذه الانتقادات باقتراح استخدام SHAKE128 وSHAKE256 بدلًا من SHA3-256 وSHA3-512 [ 41 ] ، على حساب خفض مقاومة الصورة المسبقة إلى النصف (مع الحفاظ على مقاومة التصادم). وبهذا، يصبح الأداء مُماثلًا لأداء SHA2-256 وSHA2-512.
ومع ذلك، في تطبيقات الأجهزة ، فإن SHA-3 أسرع بشكل ملحوظ من جميع المتأهلين النهائيين الآخرين، [ 42 ] وأسرع أيضًا من SHA-2 وSHA-1. [ 41 ]
اعتبارًا من عام 2018، تتضمن بنية ARMv8 من ARM [ 43 ] تعليمات خاصة تُمكّن خوارزميات Keccak من التنفيذ بسرعة أكبر، بينما تتضمن بنية z/Architecture من IBM [ 44 ] تطبيقًا كاملاً لخوارزميتي SHA-3 وSHAKE في تعليمة واحدة. كما طُرحت مقترحات لتوسيع بنية RISC-V لإضافة تعليمات خاصة بخوارزمية Keccak. [ 45 ]
الحالات
يُحدد معيار المعهد الوطني للمعايير والتكنولوجيا (NIST) الحالات التالية، للرسالة M وطول الإخراج d : [ 6 ] : 20، 23
| مثال | حجم الإخراج د | معدل r = حجم الكتلة | السعة ج | تعريف | قوة الأمن تكمن في أجزاء من المقاومة ضد | ||
|---|---|---|---|---|---|---|---|
| تصادم | الصورة الأصلية | الصورة السابقة الثانية | |||||
| SHA3-224( M ) | 224 | 1152 | 448 | Keccak[448]( M | | 01, 224) | 112 | 224 | 224 |
| SHA3-256( M ) | 256 | 1088 | 512 | Keccak[512]( M | | 01, 256) | 128 | 256 | 256 |
| SHA3-384( M ) | 384 | 832 | 768 | Keccak[768]( M | | 01, 384) | 192 | 384 | 384 |
| SHA3-512( M ) | 512 | 576 | 1024 | Keccak[1024]( M | | 01, 512) | 256 | 512 | 512 |
| SHAKE128( M , d ) | د | 1344 | 256 | Keccak[256]( M | | 1111, d ) | min( d /2,128) | ≥ min( d ,128) | min( d ,128) |
| SHAKE256( M , d ) | د | 1088 | 512 | Keccak[512]( M | | 1111, d ) | min( d /2,256) | ≥ min( d ,256) | min( d ,256) |
مع التعريفات التالية
- Keccak[ c ]( N , d ) = sponge[Keccak-f[1600], pad10 * 1, r ]( N , d ) [ 6 ] : 20
- Keccak-f[1600] = Keccak-p[1600, 24] [ 6 ] : 17
- ج هي السعة
- r هو المعدل = 1600 − c
- N هي سلسلة بتات الإدخال
تعتبر مثيلات SHA-3 بدائل مباشرة لـ SHA-2، وتهدف إلى امتلاك خصائص أمنية متطابقة.
تُولّد خوارزمية SHAKE عددًا من البتات من مُستقبِلها حسب الطلب، ما يجعلها دوال إخراج قابلة للتوسيع (XOFs). على سبيل المثال، يمكن استخدام SHAKE128(M, 256) كدالة تجزئة بسلسلة بتات طولها 256 حرفًا وبقوة أمان 128 بت. ويمكن استخدام أطوال كبيرة كيفما اتفق كمولدات أرقام شبه عشوائية. بدلاً من ذلك، يمكن استخدام SHAKE256(M, 128) كدالة تجزئة بطول 128 بت ومقاومة 128 بت. [ 6 ]
تُلحق جميع الحالات بعض البتات بالرسالة، ويمثل البت الأيمن منها لاحقة فصل النطاق . والهدف من ذلك هو ضمان عدم إمكانية إنشاء رسائل تُنتج نفس ناتج التجزئة لتطبيقات مختلفة لدالة التجزئة Keccak. توجد لواحق فصل النطاق التالية: [ 6 ] [ 46 ] [ 47 ]
| لاحقة | معنى |
|---|---|
| ٠٠ | سي شيك |
| 01 | SHA-3 |
| ...11 | مشروب خام |
| 1111 | هزة |
حالات إضافية
في ديسمبر 2016، نشر المعهد الوطني للمعايير والتكنولوجيا (NIST) وثيقة جديدة، NIST SP.800-185، [ 47 ] تصف وظائف إضافية مشتقة من SHA-3:
| مثال | وصف |
|---|---|
| cSHAKE128( X , L , N , S ) | إصدار من برنامج SHAKE يدعم الفصل الصريح بين المجالات عبر معلمات التخصيص. |
| cSHAKE256( X , L , N , S ) | |
| KMAC128( K , X , L , S ) | دالة تجزئة بمفتاح مبنية على Keccak. يمكن استخدامها أيضًا بدون مفتاح كدالة تجزئة عادية. |
| KMAC256( K , X , L , S ) | |
| KMACXOF128( K , X , L , S ) | |
| KMACXOF256( K , X , L , S ) | |
| TupleHash128( X , L , S ) | دالة لتجزئة مجموعات من السلاسل النصية. يعتمد ناتج هذه الدالة على كل من محتوى وتسلسل السلاسل النصية المدخلة. |
| TupleHash256( X , L , S ) | |
| TupleHashXOF128( X , L , S ) | |
| TupleHashXOF256( X , L , S ) | |
| ParallelHash128( X , B , L , S ) | دالة مصممة لاستغلال التوازي في المعالجات الحديثة لتسريع عملية التجزئة. على عكس KangarooTwelve، لا تستخدم هذه الدالة Keccak ذات عدد الجولات المخفّض. |
| ParallelHash256( X , B , L , S ) | |
| ParallelHashXOF128( X , B , L , S ) | |
| ParallelHashXOF256( X , B , L , S ) |
- يمثل X سلسلة البتات الرئيسية المدخلة. ويمكن أن يكون طولها أي طول، بما في ذلك الصفر.
- L هو عدد صحيح يمثل طول الإخراج المطلوب بالبتات.
- N عبارة عن سلسلة بتات تمثل اسم الدالة، وتستخدمها NIST لتعريف الدوال بناءً على cSHAKE. عندما لا تكون هناك حاجة إلى دالة أخرى غير cSHAKE، يتم تعيين N إلى سلسلة فارغة، وفي هذه الحالة تكون مطابقة لـ SHAKE.
- S عبارة عن سلسلة بتات مخصصة. يختار المستخدم هذه السلسلة لتحديد صيغة مختلفة للدالة. عندما لا يرغب المستخدم في أي تخصيص، يتم تعيين S إلى سلسلة فارغة.
- K عبارة عن سلسلة بتات رئيسية بأي طول، بما في ذلك الصفر.
- يمثل B حجم الكتلة بالبايتات للتجزئة المتوازية. ويمكن أن يكون أي عدد صحيح بحيث يكون 0 < B < 22040 .
التطورات اللاحقة
الكنغر اثنا عشر
في عام 2016، قدم نفس الفريق الذي صنع وظائف SHA-3 وخوارزمية Keccak بدائل أسرع ذات جولات مخفضة (مخفضة إلى 12 و 14 جولة، من 24 في SHA-3) والتي يمكنها استغلال إمكانية التنفيذ المتوازي باستخدام تجزئة الشجرة : KangarooTwelve و MarsupilamiFourteen. [ 49 ]
تختلف هذه الوظائف عن ParallelHash، وهي وظيفة التجزئة المتوازية القائمة على Keccak والمعيارية FIPS، فيما يتعلق بالتوازي، حيث أنها أسرع من ParallelHash لأحجام الرسائل الصغيرة.
يُبرر تقليل عدد الجولات بالجهود التحليلية الهائلة التي بُذلت في دراسة خوارزمية Keccak، والتي لم تُسفر عن أي هجمات عملية على خوارزمية Keccak ذات الاثنتي عشرة جولة. هذه الخوارزميات الأسرع ليست جزءًا من SHA-3 (لأنها تطوير لاحق)، وبالتالي فهي لا تتوافق مع معيار FIPS؛ ولكن نظرًا لاستخدامها نفس تبديل Keccak، فإنها تظل آمنة طالما لم تُشن هجمات على SHA-3 المُختزلة إلى 12 جولة. [ 49 ]
KangarooTwelve هي نسخة محسّنة من Keccak ذات أداء عالٍ وعدد جولات أقل (من 24 إلى 12 جولة)، وتدّعي توفير مستوى أمان يصل إلى 128 بت [ 50 ] مع أداء يصل إلى 0.55 دورة لكل بايت على معالج Skylake . [ 51 ] هذه الخوارزمية مُحددة في معيار IETF RFC 9861. [ 52 ]
يستخدم خوارزمية MarsupilamiFourteen، وهي نسخة معدلة قليلاً من KangarooTwelve، 14 جولة من تبديل Keccak وتدّعي توفير مستوى أمان 256 بت. تجدر الإشارة إلى أن مستوى الأمان 256 بت ليس أكثر فائدة عمليًا من مستوى الأمان 128 بت، ولكنه قد يكون مطلوبًا في بعض المعايير. [ 50 ] يكفي مستوى الأمان 128 بت بالفعل لصد هجمات القوة الغاشمة على الأجهزة الحالية، لذا فإن وجود مستوى أمان 256 بت لا يضيف قيمة عملية، إلا إذا كان المستخدم قلقًا بشأن التطورات الكبيرة في سرعة الحواسيب التقليدية . للاطلاع على معلومات حول مقاومة الحواسيب الكمومية ، انظر أدناه.
تُعدّ كلٌّ من KangarooTwelve و MarsupilamiFourteen دوال إخراج قابلة للتمديد، على غرار SHAKE، ولذلك تُنتجان مخرجات مترابطة لرسالة مشتركة بأطوال إخراج مختلفة (المخرج الأطول هو امتداد للمخرج الأقصر). لا تُظهر دوال التجزئة مثل SHA-3 أو ParallelHash هذه الخاصية (باستثناء متغيرات XOF). [ 6 ]
بناء فارفالي
في عام 2016، أصدر فريق Keccak بنية مختلفة تسمى بنية Farfalle ، و Kravatte، وهي حالة من Farfalle باستخدام تبديل Keccak-p، [ 53 ] بالإضافة إلى خوارزميتي تشفير مصادق عليهما Kravatte-SANE و Kravatte-SANSE [ 54 ].
تجزئة شجرة الساكورا
يُعدّ RawSHAKE أساسًا لترميز Sakura لتجزئة الأشجار، والذي لم يُوحّد بعد. يستخدم Sakura اللاحقة 1111 للعقد المفردة، وهي مكافئة لـ SHAKE، بالإضافة إلى لواحق أخرى مُولّدة حسب شكل الشجرة. [ 46 ] : 16
الحماية من الهجمات الكمومية
هناك نتيجة عامة ( خوارزمية غروفر ) مفادها أن الحواسيب الكمومية يمكنها تنفيذ هجوم ما قبل الصورة المنظم فيبينما يتطلب الهجوم التقليدي بالقوة الغاشمة بُعدين . ويستلزم هجوم الصورة العكسية المُهيكل هجوم صورة عكسية ثانٍ [ 29 ] ، وبالتالي هجوم تصادم . كما يمكن للحاسوب الكمومي تنفيذ هجوم عيد الميلاد ، وبالتالي كسر مقاومة التصادم.[ 55 ] (مع أن ذلك محل خلاف). [ 56 ] مع ملاحظة أن أقصى قوة يمكن أن تكونوهذا يعطي الحدود العليا التالية [ 57 ] على الأمن الكمي لـ SHA-3:
| مثال | قوة الأمن تكمن في أجزاء من المقاومة ضد | |||
|---|---|---|---|---|
| الاصطدام (براسارد وآخرون) | تصادم (بيرنشتاين) | الصورة الأصلية | الصورة السابقة الثانية | |
| SHA3-224( M ) | 74 + 2 ⁄ 3 | 112 | 112 | 112 |
| SHA3-256( M ) | 85 + 1 ⁄ 3 | 128 | 128 | 128 |
| SHA3-384( M ) | 128 | 192 | 192 | 192 |
| SHA3-512( M ) | 170 + 2 ⁄ 3 | 256 | 256 | 256 |
| SHAKE128( M , d ) | min( d /3,128) | min( d /2,128) | ≥ min( d /2,128) | min( d /2,128) |
| SHAKE256( M , d ) | min( d /3,256) | min( d /2,256) | ≥ min( d /2,256) | min( d /2,256) |
لقد ثبت أن بناء ميركل-دامغارد ، كما هو مستخدم في SHA-2، قابل للانهيار، وبالتالي مقاوم للتصادم الكمومي، [ 58 ] أما بالنسبة لبناء الإسفنج المستخدم في SHA-3، فقد قدم المؤلفون براهين فقط للحالة التي لا تكون فيها دالة الكتلة f قابلة للعكس بكفاءة؛ ومع ذلك، فإن Keccak-f[1600] قابلة للعكس بكفاءة، وبالتالي فإن برهانهم لا ينطبق. [ 59 ]
أمثلة على متغيرات SHA-3
القيم التالية للتجزئة مأخوذة من موقع NIST.gov: [ 60 ]
SHA3-224("") 6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7 SHA3-256("") a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a SHA3-384("") 0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004 SHA3-512("") a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a6 15b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26 SHAKE128("", 256) 7f9c2ba4e88f827d616045507605853ed73b8093f6efbc88eb1a6eacfa66ef26 اهتز256(""، 512) 46b9dd2b0ba88d13233b3feb743eeb243fcd52ea62b81b82b50c27646ed5762f d75dc4ddd8c0f200cb05019d67b592f6fc821c49479ab48640292eacb3b7c4be
يؤدي تغيير بت واحد إلى تغيير كل بت في الناتج باحتمالية 50%، مما يدل على تأثير الانهيار الجليدي :
SHAKE128("The quick brown fox jumps over the lazy dog", 256) f4202e3c5852f9182a0430fd8144f0a74b95e7417ecae17db0f8cfeed0e3e66e SHAKE128("The quick brown fox jumps over the lazy do f ", 256) 853f4538be0db9621a6cea659a06c1107b1f83f02b13d18297bd39d7411cf10c
مقارنة وظائف SHA
في الجدول أدناه، تعني الحالة الداخلية عدد البتات التي يتم نقلها إلى الكتلة التالية.
| الخوارزمية والمتغير | حجم الإخراج (بت) | حجم الحالة الداخلية (بت) | حجم الكتلة (بت) | جولات | العمليات | الأمان (بت) | الأداء على معالجات سكايليك (متوسط عدد الدورات لكل مليار دورة ) [ 61 ] | نُشر لأول مرة | ||
|---|---|---|---|---|---|---|---|---|---|---|
| رسائل طويلة | 8 بايت | |||||||||
| MD5 (كمرجع) | 128 | 128 (4 × 32) | 512 | 4 (16 عملية في كل جولة) | و، Xor، أو، Rot، Add (mod 2 32 ) | ≤ 18 (تم العثور على تصادمات) [ 62 ] | 4.99 | 55.00 | 1992 | |
| SHA-0 | 160 | 160 (5 × 32) | 512 | 80 | و، Xor، أو، Rot، Add (mod 2 32 ) | أقل من 34 (تم العثور على تصادمات) | ≈ SHA-1 | ≈ SHA-1 | 1993 | |
| SHA-1 | < 63 (تم العثور على تصادمات) [ 63 ] | 3.47 | 52.00 | 1995 | ||||||
| SHA-2 | SHA-224 SHA-256 | 224 256 | 256 (8 × 32) | 512 | 64 | و، Xor، أو، Rot، Shr، Add (mod 2 32 ) | 112 128 | 7.62 7.63 | 84.50 85.25 | 2004 2001 |
| SHA-384 | 384 | 512 (8 × 64) | 1024 | 80 | و، Xor، أو، روت، شر، إضافة (mod 2 64 ) | 192 | 5.12 | 135.75 | 2001 | |
| SHA-512 | 512 | 256 | 5.06 | 135.50 | 2001 | |||||
| SHA-512/224 SHA-512/256 | 224 256 | 112 128 | ≈ SHA-384 | ≈ SHA-384 | 2012 | |||||
| SHA-3 | شا3-224 شا3-256 شا3-384 شا3-512 | 224 256 384 512 | 1600 (5 × 5 × 64) | 1152 1088 832 576 | 24 [ 64 ] | و، Xor، Rot، Not | 112 128 192 256 | 8.12 8.59 11.06 15.88 | 154.25 155.50 164.00 164.00 | 2015 |
| شيك ١٢٨ شيك ٢٥٦ | د (اعتباطي) د (اعتباطي) | 1344 1088 | الحد الأدنى ( د /2، 128) الحد الأدنى ( د /2، 256) | 7.08 8.59 | 155.25 155.50 | |||||
يحقق التنفيذ الأمثل لخوارزمية SHA3-256 باستخدام AVX-512VL (أي من OpenSSL ، على معالجات Skylake-X ) حوالي 6.4 دورة لكل بايت للرسائل الكبيرة، [ 65 ] وحوالي 7.8 دورة لكل بايت عند استخدام AVX2 على معالجات Skylake . [ 66 ] ويختلف الأداء على معالجات x86 وPower وARM الأخرى، اعتمادًا على التعليمات المستخدمة ونوع المعالج، من حوالي 8 إلى 15 دورة لكل بايت، [ 67 ] [ 68 ] [ 69 ] بينما تصل بعض معالجات x86 القديمة إلى 25-40 دورة لكل بايت. [ 70 ]
التطبيقات
فيما يلي قائمة بمكتبات التشفير التي تدعم SHA-3:
تسريع الأجهزة
تدعم أنوية معالج Apple A13 ARMv8 سداسي النواة SoC [ 71 ] تسريع خوارزمية SHA-3 (وSHA-512) باستخدام تعليمات متخصصة من مجموعة ملحقات التشفير ARMv8.2-SHA. [ 72 ] لا تُنفذ هذه التعليمات إجراء SHA3 بالكامل، بل تُنفذ عمليات أصغر: EOR3 (عملية XOR ثلاثية)، وRAX (تدوير وXOR)، وXAR (XOR وتدوير)، وBCAX (مسح البتات وXOR).
يتضمن OpenSSL العديد من تطبيقات لغة التجميع لخوارزمية SHA-3 (أو بالأحرى، دالة Keccak-f[1600] sponge). ويأتي معظم التحسين من تحسين الكود القياسي ، ولا يُحقق الكثير من SIMD .
- في معالجات x86 ذات 32 بت، لا يُوفر سوى تطبيق MMX ، لأن "المعالجات غير القادرة على استخدام MMX أصبحت نادرة". وتشير التعليقات إلى أن سرعة تشغيله تبلغ ضعف سرعة كود x86 القياسي المُولّد بواسطة gcc-5.x تقريبًا. [ 73 ]
- في معالجات x86 ذات 64 بت، تتوفر تطبيقات عامة، وتطبيقات AVX2، وAVX-512، وAVX-512VL. يُعد الإصدار العادي أسرع بنسبة 15% تقريبًا من الكود المُولّد بواسطة gcc-5.x، بينما يُعد إصدار AVX2 أسرع بنسبة 15% أخرى من الإصدار العام على معالجات Intel (مع كونه أبطأ بكثير على معالجات Ryzen). وتُظهر إصدارات AVX-512 تحسنًا بنسبة 50% تقريبًا مقارنةً بالإصدار العام على معالجات Skylake-X. [ 74 ]
- في معالجات ARMv4 وما فوق، يُحسّن الكود العددي المكتوب يدويًا الأداء بمقدار الضعف إلى ثلاثة أضعاف مقارنةً بمخرجات المُصرّف. ويُحسّن كود Thumb-2 العددي الأداء بنسبة 10% تقريبًا. أما كود NEON فيُحسّن الأداء بمقدار الضعف أيضًا، مع العلم أنه حتى في أفضل الحالات (معالج Snapdragon S4) يستغرق 24 دورة لمعالجة كل بايت. [ 75 ] في معالجات ARMv8، لا تُحسّن تعليمات NEON الأداء، باستثناء حالة ARMv8.2-SHA حيث تُستخدم سجلات المتجهات بشكل محدود في التعليمات المُدعّمة بالأجهزة. [ 76 ]
- في معالجات PowerPC، يكون إصدار التجميع القياسي أسرع بمرتين تقريبًا من كود gcc-4.x (وتُحقق المُجمّعات الأحدث أداءً أفضل بكثير). يتميز معالج POWER8 بتدوير متجهي 2x64 بت، وهو أمر مفيد، ولكن في معالج POWER9، تُؤدي سعة الإصدار القياسي الأسرع إلى جعل الإصدار القياسي أسرع مرة أخرى. [ 77 ]
يدعم نظام IBM z/Architecture خوارزمية SHA-3 منذ عام 2017 كجزء من ملحق Message-Security-Assist Extension 6. وتدعم المعالجات تطبيقًا كاملاً لخوارزميتي SHA-3 وSHAKE عبر تعليمات KIMD وKLMD باستخدام محرك مساعدة مدمج في كل نواة. [ 78 ]
المتغيرات المتوازية
من الأسهل تسريع المتغيرات المتوازية لخوارزمية SHA-3 مثل ParallelHash128. يوجد أحد هذه التطبيقات لخوارزمية SSSE3 في Crypto++. [ 79 ]
الاستخدام في البروتوكولات
يستخدم إيثيريوم دالة التجزئة Keccak-256 (وفقًا للإصدار 3 من المشاركة الفائزة في مسابقة SHA-3 من قبل بيرتوني وآخرون، وهو يختلف عن مواصفات SHA-3 النهائية). [ 80 ]
انظر أيضاً
- إيثاش – نوع آخر من الحشيش يعتمد على كيكاك
مراجع
- 1 2 3 بيرتوني، جويدو؛ الأماكن القريبة : بيترز، مايكل. فان آش ، جيل (29 مايو 2012). "نظرة عامة على تنفيذ Keccak" (PDF) . ص. 25 . تم الاسترجاع في 27 مارس 2023 .
- ↑ مورافيتسكي، باويل؛ بيبرزيك، جوزيف؛ سريبرني، ماريان (2013). "التحليل التشفيري الدوراني لخوارزمية كيكاك المُختزلة الجولات" (ملف PDF) . في: مورياي، س. (محرر). التشفير البرمجي السريع . سلسلة محاضرات التشفير البرمجي السريع في علوم الحاسوب. المجلد 8424. الصفحات 241-262 . doi : 10.1007/978-3-662-43933-3_13 . ISBN 978-3-662-43932-6تمت أرشفة الملف (PDF) من النسخة الأصلية في 8 يناير 2013. تم الاطلاع عليه في 8 فبراير 2019 .
- ^ بيرتوني، جويدو. دايمن، جوان؛ بيترز، مايكل. فان آش ، جايلز (14 يناير 2011). “تقديم Keccak SHA-3” (PDF) . keccak.team . أرشفة (PDF) من النسخة الأصلية في 19 آب (أغسطس) 2011 . تم الاسترجاع في 27 مارس 2023 .
- ↑ قسم أمن الحاسوب، مختبر تكنولوجيا المعلومات (4 يناير 2017). "دوال التجزئة | CSRC | CSRC" . CSRC | NIST . تم الاطلاع عليه في 19 أبريل 2024 .
- 1 2 "دوال التجزئة" . المعهد الوطني للمعايير والتكنولوجيا . 22 يونيو 2020. تم الاطلاع عليه في 17 فبراير 2021 .
- مختبر تكنولوجيا المعلومات (أغسطس 2015). معيار SHA - 3 : التجزئة القائمة على التبديل ووظائف الإخراج القابلة للتوسيع (ملف PDF) . المعهد الوطني للمعايير والتكنولوجيا . doi : 10.6028/NIST.FIPS.202 . S2CID 64734386. منشور معيار معالجة المعلومات الفيدرالي رقم 202. تاريخ الاسترجاع: 29 فبراير 2020 .
- ↑ دوركين، موريس ج. (4 أغسطس 2015). "معيار SHA-3: التجزئة القائمة على التبديل ووظائف الإخراج القابلة للتوسيع" . معايير معالجة المعلومات الفيدرالية (NIST FIPS).
- 1 2 "المعهد الوطني للمعايير والتكنولوجيا يختار الفائز في مسابقة خوارزمية التجزئة الآمنة (SHA-3)" . المعهد الوطني للمعايير والتكنولوجيا . 2 أكتوبر 2012. تم الاطلاع عليه في 2 أكتوبر 2012 .
- ↑ كروز، خوسيه آر سي (7 مايو 2013). "كيكاك: معيار التشفير الجديد SHA-3" . دكتور دوبس .
- ^ بيرتوني، جويدو. دايمن، جوان؛ بيترز، مايكل. فان اشي، جيل. "ملخص مواصفات Keccak" . تم الاسترجاع في 27 مارس 2023 .
- ^ تشانغ، شو جين؛ بيرلنر، راي؛ بور، وليام E.؛ سونميز توران، ميلتم؛ كيلسي، جون م. بول، سوراديوتي؛ بشام ، لورانس إي. (نوفمبر 2012). تقرير الجولة الثالثة لمسابقة خوارزمية تجزئة التشفير SHA-3 (PDF) . دوى : 10.6028/NIST.IR.7896 . تم الاسترجاع في 29 فبراير 2020 .الأقسام 5.1.2.1 (التي تشير إلى "وضع الشجرة")، و6.2 ("ميزات أخرى"، التي تشير إلى التشفير المصادق عليه)، و7 (التي تقول إن "الإضافات" قد يتم توحيدها في المستقبل).
- 1 2 بيرتوني، جويدو؛ دايمن، جوان؛ بيترز، مايكل. فان آش، جيل؛ روني فان كير (13 مارس 2014). “تقديم قيصر: Ketje v1” (PDF) . تم الاسترجاع في 29 فبراير 2020 .
- 1 2 بيرتوني، جويدو؛ دايمن، جوان؛ بيترز، مايكل. فان آش، جيل؛ روني فان كير (13 مارس 2014). "تقديم قيصر: Keyak v1" (PDF) . تم الاسترجاع في 29 فبراير 2020 .
- 1 2 بيرتوني، جويدو؛ دايمن، جوان؛ بيترز، مايكل. فان آش، جايلز. "الاسفنج والإنشاءات المزدوجة" . تم الاسترجاع في 27 مارس 2023 .
- ↑ قسم أمن الحاسوب، مختبر تكنولوجيا المعلومات (14 ديسمبر 2022). "المعهد الوطني للمعايير والتكنولوجيا (NIST) ينتقل من استخدام خوارزمية SHA-1 لجميع التطبيقات | مركز أبحاث أمن الحاسوب (CSRC)" . مركز أبحاث أمن الحاسوب | المعهد الوطني للمعايير والتكنولوجيا . تاريخ الاسترجاع: 9 أكتوبر 2024 .
- ↑ "إعلان طلب ترشيحات لخوارزميات مرشحة لعائلة خوارزميات التشفير الجديدة (SHA-3) [ السجل الفيدرالي الأمريكي، المجلد 72، العدد 212 ] " (ملف PDF) . 2 نوفمبر 2007. مؤرشف (ملف PDF) من الأصل في 31 مارس 2011. تم الاطلاع عليه في 18 يوليو 2017 .
- ^ بيرتوني، جويدو. دايمن، جوان؛ بيترز، مايكل. فان اشي، جيل. "الطريق من بنما إلى كيكاك عبر راديو غاتون" (PDF) . تم الاسترجاع في 27 مارس 2023 .
- ↑ KeccakReferenceAndOptimized-3.2.zip mainReference.c "دالة Keccak sponge، من تصميم غيدو بيرتوني، وجوان دايمين، ومايكل بيترز، وجيل فان آش. لمزيد من المعلومات أو الملاحظات أو الأسئلة، يرجى زيارة موقعنا الإلكتروني: http://keccak.noekeon.org/Implementation . وقد تنازل المُنفذ، إلى أقصى حد يسمح به القانون، عن جميع حقوق النشر والحقوق ذات الصلة أو المجاورة لشفرة المصدر في هذا الملف. https://creativecommons.org/publicdomain/zero/1.0/ "
- ↑ ستيفنز، مارك؛ بورشتين، إيلي؛ كاربمان، بيير؛ ألبرتيني، أنج؛ ماركوف، ياريك. "أول تصادم لخوارزمية SHA-1 الكاملة" (ملف PDF) . تم الاطلاع عليه بتاريخ 23 فبراير 2017 .
- ^ لوران، غايتان؛ بيرين، توماس. "SHA-1 عبارة عن فوضى" . تم الاسترجاع في 8 يناير 2020 .
- ↑ "قسم أمن الحاسوب في المعهد الوطني للمعايير والتكنولوجيا - مسابقة خوارزمية التشفير SHA-3، نوفمبر 2007 - أكتوبر 2012" . 4 يناير 2017.
- ↑ "تغييرات معلمات Keccak للجولة الثانية" . فريق Keccak . 22 سبتمبر 2009. مؤرشف من الأصل في 13 نوفمبر 2017. تم الاطلاع عليه في 29 فبراير 2020 .
- ↑ "تبسيط قاعدة الحشو في لعبة Keccak للجولة الثالثة" . فريق Keccak . 17 يناير 2011. تم الاطلاع عليه بتاريخ 27 مارس 2023 .
- ↑ "توحيد معيار SHA-3" . المعهد الوطني للمعايير والتكنولوجيا . تم الاطلاع عليه بتاريخ 16 أبريل 2015 .
- ↑ المعهد الوطني للمعايير والتكنولوجيا (5 أغسطس 2015). "معايير معالجة المعلومات الفيدرالية: التجزئة القائمة على التبديل ووظائف الإخراج القابلة للتوسيع، إلخ" . تم الاطلاع عليه في 5 أغسطس 2015 .
- ↑ "إعلان الموافقة على معيار معالجة المعلومات الفيدرالي (FIPS) 202، معيار SHA-3: التجزئة القائمة على التبديل ووظائف الإخراج القابلة للتوسيع، ومراجعة بند قابلية تطبيق معيار FIPS 180-4، معيار التجزئة الآمنة" . 5 أغسطس 2015.
- ↑ كيلسي، جون. "SHA3، أين كنا، وإلى أين نحن ذاهبون" (ملف PDF) . مؤتمر RSA 2013.
- ↑ كيلسي، جون. "SHA3، الماضي والحاضر والمستقبل" . CHES 2013.
- 1 2 "ملخص" (PDF) . cr.yp.to .
- ↑ "القائمة البريدية لمنتدى التجزئة التابع للمعهد الوطني للمعايير والتكنولوجيا" . 4 يناير 2017.
- ↑ "تقديم Keccak SHA-3" (ملف PDF) . 14 يناير 2011. تم الاطلاع عليه في 27 مارس 2023 .
- ↑ "حول أمن 128 بت" . 2 أكتوبر 2013. تم الاطلاع عليه في 27 مارس 2023 .
- ↑ "اقتراح ملموس" . 2 أكتوبر 2013. تم الاطلاع عليه في 27 مارس 2023 .
- 1 2 "شناير حول الأمن: هل سيكون Keccak = SHA-3؟" . أكتوبر 2013.
- ↑ كراولي، بول (1 أكتوبر 2013). "LShift: لماذا أؤيد قيام الحكومة الأمريكية بإضعاف معيار التشفير" . مؤرشف من الأصل في 24 مارس 2016.
- ↑ "نعم، هذا هو كيكاك!" . 4 أكتوبر 2013. تم الاطلاع عليه في 27 مارس 2023 .
- ↑ "المضي قدماً مع SHA-3" (ملف PDF) .
- ↑ قسم أمن الحاسوب التابع للمعهد الوطني للمعايير والتكنولوجيا (NIST). "معيار SHA-3: التجزئة القائمة على التبديل ووظائف الإخراج القابلة للتوسيع" (ملف PDF) . المعهد الوطني للمعايير والتكنولوجيا.
- ↑ "حوالي 41 دورة/بايت [...] يمثل تسريعًا بنسبة 40% مقارنةً بالتنفيذ باستخدام تعليمات 32 بت فقط". حسب الصيغةنحصل على
- ↑ بيرنشتاين، دانيال ج. (4 يناير 2012). "أعطال التحسين في برمجيات SHA-3" (ملف PDF) . cr.yp.to. تم الاطلاع عليه في 29 فبراير 2020 .
- 1 2 3 "هل خوارزمية SHA-3 بطيئة؟" . 12 يونيو 2017. تم الاطلاع عليه في 27 مارس 2023 .
- ↑ غو، شو؛ هوانغ، سنان؛ نازهندالي، ليلى؛ شومون، باتريك (أغسطس 2010)، "تقييم أداء عادل وشامل لـ 14 تطبيقًا من الجولة الثانية لـ SHA-3 ASIC" (ملف PDF) ، المؤتمر الثاني لمرشحي SHA-3 التابع للمعهد الوطني للمعايير والتكنولوجيا : 12 ، تم الاطلاع عليه في 18 فبراير 2011يحتل كيكاك المركز الثاني بعد لوفا، الذي لم يتأهل إلى الجولة النهائية.
- ↑ شركة ARM، دليل مرجعي لهندسة ARMv8، لملف تعريف هندسة ARMv8-A، الوثيقة ARM DDI 0487C.a (ID121917)، https://www.arm.com
- ↑ http://publibfp.dhe.ibm.com/epubs/pdf/dz9zr011.pdf ص 672
- ↑ راوات، هيمندرا؛ شومونت، باتريك (2017). "امتدادات مجموعة تعليمات المتجهات للحساب الفعال لـ <sc>Keccak</sc>". معاملات IEEE للحواسيب . 66 (10): 1778-1789 . doi : 10.1109/TC.2017.2700795 .
- 1 2 "ساكورا: ترميز مرن لتجزئة الأشجار" (ملف PDF) . فريق كيكاك . 2014. تم الاطلاع عليه في 29 فبراير 2020 .
- 1 2 وظائف مشتقة من SHA-3: cSHAKE و KMAC و TupleHash و ParallelHash. تتضمن هذه المقالة نصًا من هذا المصدر، وهو في المجال العام .

- ↑ "أرقام أداء البرامج" .
- 1 2 "فريق كيكاك: الكنغر 12" . فريق كيكاك.
- 1 2 "KangarooTwelve: تجزئة سريعة تعتمد على Keccak-p" (ملف PDF) . الرابطة الدولية لأبحاث التشفير . 2016.
- ↑ "KangarooTwelve slides presented at ACNS 2018" (PDF) . Keccak Team.
- ^ فيجوير، بينوا؛ وونغ، ديفيد. آش، جيل فان. دانغ، كوينه. دايمن ، جوان (12 أكتوبر 2025). KangarooTwelve وTurboSHAKE . فريق عمل الإنترنت . دوى : 10.17487/RFC9861 . آر إف سي 9861 . تم الاسترجاع في 4 نوفمبر، 2025 .
- ^ بيرتوني، جويدو. دايمن، جوان؛ هوفرت، سيث. بيترز، مايكل. فان آش، جيل؛ روني فان كير (29 ديسمبر 2016). "Farfalle: التشفير المبني على التقليب المتوازي" . أرشيف الطباعة الإلكترونية لعلم التشفير .
- ^ جويدو بيرتوني. جوان دايمن؛ سيث هوفرت؛ مايكل بيترز؛ جيل فان آش؛ روني فان كير (12 أكتوبر 2018). "أنظمة التشفير الموثقة Kravatte-SANE و Kravatte-SANSE" . أرشيف الطباعة الإلكترونية لعلم التشفير .
- ↑ براسارد، جيل؛ هوير، بيتر؛ تاب، آلان (1998). "التحليل التشفيري الكمي للوظائف التجزئية والوظائف الخالية من المخالب". ملخص . سلسلة محاضرات في علوم الحاسوب. المجلد 1380. الصفحات 163-169 . arXiv : quant-ph/9705002 . doi : 10.1007/BFb0054319 . ISBN 978-3-540-64275-6. S2CID 118940551 .
- ↑ "تحليل التكلفة" (ملف PDF) . cr.yp.to .
- ↑ "مشكلة التصادم" (ملف PDF) . scottaaronson.com .
- ↑ أونرو، دومينيك (2016). "الالتزامات الكمومية التي تربط الانهيار بدون أوراكل عشوائي" (ملف PDF) . أرشيف الطباعة الإلكترونية لعلم التشفير .
- ↑ أونرو، دومينيك (2017). "الإسفنج المنهار: أمن ما بعد الكم لبنية الإسفنج" (ملف PDF) . أرشيف الطباعة الإلكترونية لعلم التشفير .
- ↑ "NIST.gov – قسم أمن الحاسوب – مركز موارد أمن الحاسوب" . 29 ديسمبر 2016.
- ↑ "جدول القياسات" . bench.cr.yp.to .
- ↑ تاو، شي؛ ليو، فانباو؛ فينغ، دينغقو (2013). هجوم التصادم السريع على MD5 (ملف PDF) . أرشيف الطباعة الإلكترونية لعلم التشفير (تقرير فني). IACR .
- ↑ ستيفنز، مارك ؛ بورشتين، إيلي ؛ كاربمان، بيير؛ ألبرتيني، أنج؛ ماركوف، ياريك. أول تصادم لخوارزمية SHA-1 الكاملة (ملف PDF) (تقرير فني). بحث جوجل . مؤرشف من الأصل (ملف PDF) في 7 فبراير 2026.
- مارك ستيفنز؛ إيلي بورشتين؛ بيير كاربمان؛ أنج ألبرتيني؛ ياريك ماركوف؛ أليكس بيتي بيانكو؛ كليمنت بايس (23 فبراير 2017). "الإعلان عن أول تصادم SHA1" . مدونة جوجل للأمن .
- ↑ "عائلة وظائف إسفنجة Keccak" . تم الاطلاع عليه بتاريخ 27 يناير 2016 .
- ↑ "openssl/openssl – kecak1600-avx512vl.pl" . GitHub . تم الاطلاع عليه بتاريخ 25 يونيو 2020 .
- ↑ "openssl/openssl – keccak1600-avx2.pl" . GitHub . نوفمبر 2021.
- ↑ "openssl/openssl – keccak1600-x86_64.pl" . GitHub . تم الاطلاع عليه بتاريخ 25 يونيو 2020 .
- ↑ "openssl/openssl – keccak1600-armv8.pl" . GitHub . نوفمبر 2021.
- ↑ "openssl/openssl – keccak1600-ppc64.pl" . GitHub . تم الاطلاع عليه بتاريخ 25 يونيو 2020 .
- ↑ "openssl/openssl – kccak1600-mmx.pl" . GitHub . تم الاطلاع عليه بتاريخ 25 يونيو 2020 .
- ↑ "llvm/llvm-project – AArch64.td" . GitHub . تم الاطلاع عليه بتاريخ 24 يونيو 2020 .
- ↑ "ARMv8 – ARM – WikiChip" . en.wikichip.org . تم الاطلاع عليه بتاريخ 24 يونيو 2020 .
- ↑ "Openssl/Crypto/Sha/Asm/Keccak1600-MMX.pl at 33388b44b67145af2181b1e9528c381c8ea0d1b6 · openssl/Openssl" . GitHub .
- ↑ "openssl/openssl" . GitHub . تم الاطلاع عليه بتاريخ 25 يونيو 2020 .
- ↑ "Openssl/Crypto/Sha/Asm/Keccak1600-armv4.pl at 33388b44b67145af2181b1e9528c381c8ea0d1b6 · openssl/Openssl" . GitHub .
- ↑ "Openssl/Crypto/Sha/Asm/Keccak1600-armv8.pl at 33388b44b67145af2181b1e9528c381c8ea0d1b6 · openssl/Openssl" . GitHub .
- ↑ "openssl/openssl" . GitHub . نوفمبر 2021.
- ↑ مبادئ تشغيل IBM z/Architecture، رقم المنشور SA22-7832. انظر تعليمات KIMD وKLMD في الفصل 7.
- ↑ "weidai11/cryptopp" . GitHub . تم الاطلاع عليه بتاريخ 25 يونيو 2020 .
- ↑ سولومون 2019 ، ص 62.
مصادر
- سولومون، إم جي (2019). إيثيريوم للمبتدئين . وايلي. رقم ISBN 978-1-119-47411-1تم الاطلاع عليه بتاريخ 20 نوفمبر 2024 .
روابط خارجية
- موقع Keccak الإلكتروني
- معيار SHA-3
- SHA-3 في Excel - مثال على التنفيذ والتوضيح في Excel (بدون وحدات ماكرو) بواسطة تيم وامباخ.
- دوال التجزئة المشفرة
- مسابقة دالة التجزئة التابعة للمعهد الوطني للمعايير والتكنولوجيا
- برامج متاحة للعموم مع شفرة المصدر
- وظائف الإخراج القابلة للتوسيع
