Skein (دالة التجزئة)

Skein هي دالة تجزئة تشفيرية، وإحدى الدوال الخمس المتأهلة للتصفيات النهائية في مسابقة NIST لدوال التجزئة . وقد تم ترشيحها لتصبح معيار SHA-3 ، خليفة SHA-1 و SHA-2 ، إلا أنها خسرت في النهاية أمام دالة التجزئة المرشحة من NIST، Keccak . [ 2 ]
يشير اسم Skein إلى كيفية قيام دالة Skein بدمج المدخلات، على غرار خيط من الخيوط. [ 1 ] صُممت Skein لدعم المخرجات ذات الأطوال المتغيرة بشكل أصلي، لذلك يمكن اعتبارها دالة إخراج قابلة للتوسيع (XOF).
تاريخ
تم إنشاء سكين بواسطة بروس شناير ، نيلز فيرجسون ، ستيفان لاكس ، دوج وايتنج، ميهير بيلاري ، تادايوشي كوهنو، جون كالاس وجيسي ووكر.
يعتمد Skein على تشفير الكتلة القابل للتعديل Threefish المضغوط باستخدام وضع تسلسل التكرار الفريد للكتلة (UBI)، وهو شكل مختلف من وضع التجزئة Matyas–Meyer–Oseas ، [ 3 ] مع الاستفادة من نظام وسيطات اختياري منخفض الحمل من أجل المرونة.
تم إتاحة خوارزمية سكين وتطبيق مرجعي لها للملكية العامة . [ 4 ]
الوظائف
يدعم Skein أحجام الحالة الداخلية 256 و512 و1024 بت، وأحجام الإخراج العشوائية. [ 5 ]
يدعي المؤلفون أن معدل 6.1 دورة لكل بايت لأي حجم إخراج على معالج Intel Core 2 Duo في وضع 64 بت. [ 6 ]
يعتمد جوهر برنامج Threefish على دالة MIX التي تحوّل كلمتين من 64 بت باستخدام عملية جمع واحدة، ودوران بمقدار ثابت، وعملية XOR. يجمع وضع UBI المتسلسل قيمة تسلسل الإدخال مع سلسلة إدخال ذات طول عشوائي، وينتج عنه مخرج ذو حجم ثابت.
تستمد خوارزمية Threefish اللاخطية بالكامل من دمج عمليات الجمع وعمليات XOR ؛ فهي لا تستخدم صناديق الاستبدال (S-boxes) . تم تحسين هذه الدالة للمعالجات ذات 64 بت، وتحدد ورقة Skein ميزات اختيارية مثل التجزئة العشوائية ، وتجزئة الشجرة المتوازية ، وتشفير التدفق ، والتخصيص، ودالة اشتقاق المفتاح .
تحليل الشفرات
في أكتوبر 2010، نُشر هجوم يجمع بين تحليل التشفير الدوراني وهجوم الارتداد . يكشف هذا الهجوم عن تصادمات دورانية في 53 جولة من أصل 72 في خوارزمية Threefish-256، وفي 57 جولة من أصل 72 في خوارزمية Threefish-512. كما يؤثر على دالة التجزئة Skein. [ 7 ] يُعد هذا الهجوم متابعةً لهجوم سابق نُشر في فبراير، والذي نجح في اختراق 39 و42 جولة على التوالي. [ 8 ]
قام فريق Skein بتعديل ثابت الجدول الزمني الرئيسي للجولة الثالثة من مسابقة NIST لوظائف التجزئة، لجعل هذا الهجوم أقل فعالية، على الرغم من اعتقادهم بأن التجزئة ستظل آمنة بدون هذه التعديلات. [ 1 ]
أمثلة على تجزئات Skein
قيم التجزئة لسلسلة نصية فارغة.
Skein-256-256("") c8877087da56e072870daa843f176e9453115929094c3a40c463a196c29bf7ba Skein-512-256("") 39ccc4554a8b31853b9de7a1fe638a24cce6b35a55f2431009e18780335d2621 سكين-512-512("") bc5b4c50925519c290cc634277ae3d6257212395cba733bbad37a4af0fa06af41fca7903d06564fea7a2d3730dbdb80c1f85562dfcc070334ea4d1d9e72cba7a
حتى تغيير بسيط في الرسالة سيؤدي (باحتمالية كبيرة جدًا) إلى قيمة تجزئة مختلفة تمامًا، وذلك بسبب تأثير التراكم . على سبيل المثال، إضافة نقطة في نهاية الجملة:
Skein-512-256(" The quick brown fox jumps over the lazy dog ") b3250457e05d3060b1a4bbc1428bc75a3f525ca389aeab96cfa34638d96e492a Skein-512-256(" الثعلب البني السريع يقفز فوق الكلب الكسول .") 41e829d7fca71c7d7154ed8fc8a069f274dd664ae0ed29d365d919f4e575eebb Skein-512-512(" The quick brown fox jumps over the lazy dog ") 94c2ae036dba8783d0b3f7d6cc111ff810702f5c77707999be7e1c9486ff238a 7044de734293147359b4ac7e1d09cd247c351d69826b78dcddd951f0ef912713 Skein-512-512(" الثعلب البني السريع يقفز فوق الكلب الكسول .")) 658223cb3d69b5e76e3588ca63feffba0dc2ead38a95d0650564f2a39da8e83fbb42c9d6ad9e03fbfde8a25a880357d457dbd6f74cbcb5e728979577dbce5436
مراجع
- 1 2 3 فيرغسون وآخرون (2010-10-01). "عائلة دوال التجزئة Skein" (ملف PDF) . مؤرشف من الأصل (ملف PDF) بتاريخ 2014-08-24 . تم الاطلاع عليه بتاريخ 2010-12-15 .
- ↑ "المعهد الوطني للمعايير والتكنولوجيا يختار الفائز في مسابقة خوارزمية التجزئة الآمنة (SHA-3)" . المعهد الوطني للمعايير والتكنولوجيا . 2012-10-02 . تاريخ الاسترجاع: 2012-10-02 .
- ↑ http://www.skein-hash.info/sites/default/files/skein1.3.pdf مؤرشف بتاريخ 24 أغسطس 2014 في أرشيف الإنترنت (Wayback Machine) ، صفحة 6
- ↑ skein_NIST_CD_121508.zip مؤرشف بتاريخ 10 يونيو 2016 على موقع Wayback Machine على skein-hash.info، skein.c "تنفيذ دالة التجزئة Skein. مؤلف الكود المصدري: دوغ وايتينغ، 2008. هذه الخوارزمية والكود المصدري متاحان للاستخدام العام."
- ↑ "الآن من بروس شناير، دالة التجزئة Skein" . سلاش دوت . 31-10-2008 . تم الاسترجاع في 31-10-2008 .
- ↑ "ورقة بحثية تصف دالة التجزئة، الإصدار 1.3 (2010-10-01)" (ملف PDF) . مؤرشفة من الأصل (ملف PDF) بتاريخ 24-08-2014 . تم الاطلاع عليها بتاريخ 15-12-2010 .
- ↑ ديمتري خوفاتوفيتش؛ إيفيكا نيكوليتش؛ كريستيان ريشبيرغر (2010-10-20). "هجمات الارتداد الدوراني على شبكة Skein المختزلة" . أرشيف الطباعة الإلكترونية لعلم التشفير .
- ↑ ديمتري خوفاتوفيتش وإيفيكا نيكوليتش (2010). "التحليل التشفيري الدوراني لـ ARX" (ملف PDF) . جامعة لوكسمبورغ . مؤرشف من الأصل (ملف PDF) بتاريخ 26 يناير 2013. تم الاطلاع عليه بتاريخ 25 أكتوبر 2010 .
روابط خارجية
- الموقع الرسمي لـ Skein (متوقف، أرشيف Wayback Machine )
- صفحة بروس شناير على الإنترنت
التطبيقات
- SPARKSkein – تطبيق لـ Skein في SPARK ، مع براهين على سلامة النوع
- يحتوي بوتان على تطبيق بلغة C++ لـ Skein-512
- nskein – تطبيق Skein بلغة .NET يدعم جميع أحجام الكتل
- وحدة pyskein Skein لبيثون
- PHP-Skein-Hash: دالة تجزئة Skein للغة PHP على GitHub
- Digest::Skein ، تطبيق مكتوب بلغة C و Perl
- تطبيق skeinfish AC# لـ Skein و Threefish (استنادًا إلى الإصدار 1.3)
- تطبيقات Java و Scala و Javascript لـ Skein 512-512 (استنادًا إلى الإصدار 1.3)
- تطبيق جافا لـ Skein (مبني على الإصدار 1.1)
- تطبيق Skein في لغة Ada
- skerl ، دالة تجزئة Skein للغة Erlang، عبر NIFs
- تم تنفيذ Skein 512-512 في Bash
- تم تنفيذ Skein في لغة Haskell
- تم تطوير شفرة المصدر VHDL بواسطة مجموعة أبحاث هندسة التشفير (CERG) في جامعة جورج ماسون
- تم تنفيذ Skeinr Skein بلغة Ruby
- fhreefish: تطبيق فعال لخوارزمية Skein-256 لوحدات التحكم الدقيقة Atmel AVR ذات 8 بت، يلبي تقديرات الأداء الموضحة في المواصفات الرسمية.
- دوال التجزئة المشفرة
- مسابقة دالة التجزئة التابعة للمعهد الوطني للمعايير والتكنولوجيا
- برامج متاحة للعموم مع شفرة المصدر
- وظائف الإخراج القابلة للتوسيع
