Whirlpool چیست؟ معرفی تابع درهم سازی (Hashing) ویرپول

Whirlpool يك تابع درهمسازي است كه بوسيلة Vincent Rijmen و Paulo S. L. M. Barreto طراحي شدهاست و روي پيامهاي كوچكتر از 256 2 بيت عمل ميكند و يك خلاصهپيام 512 بيتي توليد ميكند. Whirlpool از روش تقويت Merkle-Damgard و روش درهمسازي Miyaguchi-Preneel با يك رمزكنندة بلوكي اختصاصي 512 بيتي به نام W استفاده ميكند. رشتهبيتي كه ميخواهد hash شود بوسيلة يك بيت `1` و سپس با يك توالي از بيت¬هاي `0` و نهايتا" با طول اوليه (به شكل يك مقدار صحيح 256 بيتي) بسط داده ميشود (Padding)؛ بهنحويكه طول پيام بعد از اين عمل مضربي از 512 بيت ميشود. رشتهپيام حاصل شده به توالي از بلوكهاي 512 بيتي m1، m2، ... ، mt تقسيم ميشود كه از آن¬ها براي توليد توالي مقادير hash H0، H1، ... ، Ht استفاده ميشود. طبق تعريف، H0 يك رشتة 512 بيتي از `0` ها ميباشد. براي محاسبة Hi، mi بوسيلة رمزكنندة W با استفاده از Hi-1 به عنوان كليد، رمز ميشود و cipher-text حاصل با Hi-1 و mi ، XOR ميشود. سرانجام، Ht خروجي Whirlpool ميباشد.
رمزكنندة بلوكي W
رمزكنندة بلوكي W استفاده شده توسط Whirlpool خيلي شبيه الگوريتم برندة AES ، Rijndael ميباشد. تفاوتهاي اصلي در جدول 1 خلاصه شدهاند :

جدول شماره 1 = تفاوت هاي ميان Rijndael و W
نوع tweaked مربوط به اين الگوريتم براي پيادهسازي سختافزاري كاراتر ميكند. اين تغيير، ساختار زيربنايي Whirlpool را تغيير نميدهد، بلكه S-box ي را جايگزين ميكند كه در نسخة اصلي كاملاً تصادفي توليد ميشود (يعني فاقد هرگونه ساختار داخلي است). S-box جديد 88 كه بوسيلة يك ساختار بازگشتي توليد ميشود از mini-box هاي كوچكتر 44 تشكيل شده است كه دو تا از آنها ( E-box و معكوسش) از تابع نمايي رويGF)24) مشتق ميشوند ويكي (R-box) به صورت شبهتصادفي توليد ميشود. اين ساختار و mini-box ها در شكل¬هاي 1 تا 3 نشان داده شدهاند.

شكل 1 : ساختار بازگشتي S-box tweaked شده

شكل 2 : mini-box هاي E و E-1
امنيت Whirlpool
بافرض اينكه اگر مقدار هر زيررشتة n بيتي از خروجي كامل Whirlpool به عنوان مقدار hash برداشته شود، طراحي Whirlpool اهداف امنيتي زيرين را برآورده ميكند :
- مقدار عمل لازم و مورد انتظار براي توليد يك تصادم از مرتبة 2n/2 اجراي Whirlpool ميباشد.
- مقدارعمل مورد نياز براي پيداكردن يك پيام كه به يك مقدار دادهشدةn بيتيhash شود از مرتبة n2 اجراي Whirlpool ميباشد.
- يك پيام و نتيجة hash ِ n بيتي آن داده شدهاند؛ مقدار عمل مورد انتظار براي يافتن پيام دوم كه به همان مقدار، hash شود از مرتبة n2 اجراي Whirlpool ميباشد.
- تشخيص روابط قاعدهداري بين هرتركيب خطي از بيتهاي ورودي و هرتركيب خطي از نتيجة hash ، غيرممكن است و همينطور پيشبيني اينكه چه بيتهايي از نتيجة hash درصورت تغيير بيتهاي مشخصي از ورودي دچار تغييرميشوند نيز غيرممكن است (اين به معناي استحكام در برابر حملات خطي و تفاضلي ميباشد).
نویسنده : فرزاد عضنفری
منبع : جزیره امنیت اطلاعات و ارتباطات وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع دارای اشکال اخلاقی است