ژانویه 21, 2021

پیام کوتاه

در شکل 2-7 ساختار تابع فشرده‌ساز Grostl برحسب پارسال و جایگشت دو ماژول p,q عمل می‌کند این ماژول الهام گرفته از الگوریتم رمز Rijndael می‌باشد بلوک رمز تشکیل‌شده از تعداد 10 دور در نسخه 256 بیتی است که هر دور شامل 4 تغییر و تحول در Addconstant ، SuByte ، ShiftByte و MixByte که Addconstant به متغیر حالت یک مقدار ثابتی می‌افزاید. SubBytes هر بایت را بابایت دیگر در متغیر حالت با استفاده از یک S-Box تغییر می‌دهد. ShiftByte یک سیکل چرخش تغییر کلمه متن درمتغییر حالت می‌باشد. در MixBye هر بایت از متغیر حالت به‌عنوان یک عنصر در میدان گالیوس (GF(28 از سوی عنصر ثابت دیگر در درون میدان چند برابر می‌شود. هش نهایی به‌صورت منحصربه‌فرد و طی او رینگ از هش قبلی طی جایگشت p،q تولید می‌شود [13].

[14]. Grostl شکل2- 8: تابع فشرده‌ساز
در شکل 2-8 این دو جایگشت p,q از همدیگر مستقل هستند بنابراین عملکرد فشرده‌سازی در یک معماری موازی و دوطرفه است. بیشتر در عمق بهینه‌سازی و بهره‌برداری از این پلت فرم از ویژگی‌های خاص آن می‌باشد [14].
Grostl درنهایت چهار دور تبدیلی را تعریف کرد که برای هر جایگشتAdd round constant ، Subbyte، Shift bytes، .Mix bytes مقدار R به‌دست‌آمده بدین‌صورت است.

R = Mix bytes ○ Shift bytes ○ Sub byte ○ Add round constant

شکل 2 9: ماتریس یک دور از جایگشت p,q چکیده سازGrostl [10]
2-7-3- نتیجه
Grostl به خاطر طرح مشهور و عملکرد استوار مخصوصاً در سخت‌افزار به دور نهایی راه یافت.
2-8- بررسی الگوریتم چکیده ساز JH
2-8-1- معرفی الگوریتم JH
یک تابع چکیده ساز شرکت‌کننده در مسابقه SHA-3 است که به دور دوم این مسابقه و دور نهایی راه پیداکرده است. JH دارای چهار الگوریتم چکیده‌سازی JH-221، JH-256، JH-384 و JH-512 است. این الگوریتم¬ها خیلی ساده هستند و برای رنج وسیعی از سیستم‌عامل‌ها از پردازشگرهای تک‌بیتی سخت‌افزاری و پردازشگرهای 128 بیتی SSE2 که درSIMD کارآمد هستند چون‌که آن‌ها روی اجزای بی‌نهایت ساده و برای پیاده‌سازی نرم‌افزار قطعه بیتی مناسب هستند. در طراحی JH تابع فشرده‌ساز از یک رمز بلوکی بزرگ با کلید ثابت به دست می¬آید که از بهترین دیمانسیون الگوریتم AES (SPN وMDS ) بکار گرفته‌شده است این تابع چکیده ساز در نرم‌افزار بسیار کارآمد هستند. سرعت JH در حدود 6/19 دور هر بایت روی میکروپروسسور دو هسته¬ایی اینتل قابل‌اجرا و روی سیستم 64 بیتی با کامپایلر c++ اینتل (حدود 3/23 دور هر بیت برای سیستم‌عامل 32 بیتی) است[15].
2-8-2- ساختار تابع فشرده‌ساز JH
تابع چکیده ساز JH از یک تابع Bijective ( یک بلوک رمز با کلید ثابت ) ساخته‌شده است.
ساختار تابع چکیده ساز در شکل زیر نشان داده‌شده است .

شکل2-10: ساختار تابع چکیده ساز JH [15]
تابع JH حاوی 5 گام است: 1- ابتدا پیام m را دنباله‌دار می¬کند.(Padding) 2- پیام دنباله‌دار شده به بلوک‌های پیام تجزیه می¬شود (Parsing) 3- مقدار اولیه چکیده ساز H0 مقداردهی می¬شود. 4- مقدار چکیده نهایی Hn الگوریتم محاسبه می¬شود. 5- تولید پیام کوتاه چکیده شده .
Padding: پیام m دنباله‌ای از مضرب 512 بیتی است.