يك تابع درهمسازي است كه بوسيلة 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 استفاده شده توسط 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 اهداف امنيتي زيرين را برآورده ميكند :
اگر می خواهید مباحث بیشتری و به خوبی آنها یاد بگیرید به دوره آموزش هک قانونمند در این لینک مراجعه کنید.