بخشی از مقاله
چکیده
امروزه با توجه به نیاز روز افزون استفاده از داده های دیجیتال و تامین امنیت آنها، موضوعی که بیش از گذشته مورد توجه متخصصان واقع میشود روش حفاظت اطلاعات و رمز نمودن آنهاست . رمزنگاری کد احراز هویت پیام درهمسازی شده شامل ترکیبی از تابع درهمساز و یک کلید رمزنگاری امن است که یکی از ابزارهای مفید و مهم در مسائل اعتباری و رمزنگاری و استفاده از توابع درهمساز میباشد و به طور همزمان به صحت داده و احرازهویت پیام رسیدگی میکند .
با توجه به حملاتی که در توابع درهمساز چون MD5 و SHA -1 صورت گرفته است، امروزه این توابع برای طراحی کد احراز هویت پیام درهم سازی شده امن محسوب نمیشوند. در این مقاله سعی شده است که کد احراز هویت پیام درهمسازی شده را با استفاده از توابع درهم ساز جدیدKeccak ،Blake و Grostl در نسخه 256 بیتی پیادهسازی شود وهمچنین درنتایج پیادهسازی کد احراز هویت پیام درهم سازی شده، تابع Keccak در مقایسه با دیگرتوابع درهم ساز ، نشان از بهبود نسبی تست اثر بهمنی ، پارامتر توازن و اعوجاج دارد و در مقابل حمله تصادم نیز مقاومت مینماید واز زمان کمتری برخوردار است که این تابع را برای پیاده سازی کد احراز هویت پیام درهم سازی شده مناسب تر میسازد .
-1 مقدمه
تابع درهم ساز، که به حاصل آن چکیده درهم ساز نیز میگویند، تابع محاسباتی می باشد که رشته ورودی با طول m را دریافت نموده و رشته ای باینری با طول ثابتn را تولید می نماید. در الگوریتم های گوناگون رمزنگاری، تابع درهمساز برای یکپارچگی - 1 اطمینان از عدم تغییر - پیام ورودی در حین انتقال به کار می رود.[1]
-2 احراز هویت پیام درهمسازی شده
استفاده از کد احراز هویت پیام با رمزنگاری توابع در هم ساز میتواند بهترین گزینه باشد.به طور کلی توابع در هم ساز سریعتر از رمزهای بلاکی هستند و اجرای آنها آسان تر و بدون محدودیت قابل دسترس است. در رمزنگاری کد احراز هویت پیام درهمسازی شده2 ، الگوریتم دو ورودی میگیرد که عبارتند از کلیدامنیتی و پیام که این دو، کد احراز هویت پیام درهم سازی شده و یا همان برچسب احراز هویت را انتقال می دهند و این عملکرد می تواند توسط دو چکیده پیام یکسان مقایسه وتوسط - رابطه - 1توصیف شود.[1]
در رابطه فوق :
: HMAC کد احراز هویت پیام در هم سازی شده ، Key :کلید امنیتی , : Msg پیام ، : H - Hash - در هم سازی : K کلید، : Opad پد خارجی ، : Ipad پد داخلی ، : : II , XOR الحاق مراحل الگوریتم کد احراز هویت پیام درهم سازی شده - شکل - 1 به شرح زیر است: مرحله اول پیش پردازش کلید امنیتی : باید سایز کلید با سایز بلاک تابع درهم ساز یکسان باشد. اگر سایزکلید از سایز بلاک تابع درهم ساز کمتر باشد, کلید با صفر در سمت راست پایانی اش Pad شده و سایز کلید با سایز بلاک یکسان میشود. اگر سایز کلید نسبت به سایز بلاک تابع درهم ساز بیشتر باشد, ابتدا کلید درهم سازی شده و سپس نتیجه درهم سازی با صفر Pad میشود و در صورت نیاز، کلید نهایی دریافت میشود.
مرحله دوم Xor با Pad داخلی و درهم ساز: بعد از مرحله اول برای اینکه کلید بدست آید، Xor کردن با Pad داخلی است و سپس پیام به آن الحاق شده و از میان تابع درهم ساز عبور داده میشود. مرحله سوم Xor با Pad خارجی و درهم ساز : کلید بدست آمده که با Pad خارجیXor شده, به سمت چپ کد احراز هویت پیام درهمساز الحاق میشود و دوباره از میان تابع درهم ساز عبور داده میشود. سپس خروجی نهایی کد احراز هویت پیام درهمسازی شده نامیده میشود .[2]
در ادامه چند تابع درهم ساز پیشین مانند توابعی همچون MD53 و SHA-14 و Ripemd-160 ، که در پیاده سازی کد احراز هویت پیام درهمسازی شده به کار رفتهاند. به طور خلاصه معرفی میشوند. الگوریتم MD5 نسخه پنجم از مجموعه توابعی است که ران ریوست برای محاسبه چکیده پیام در سال 1991 ارائه کرد . MD5 الگوریتمی است که با درهمفشردن تمام بیتهای یک پیام ، طبق رابطهای نسبتاً پیچیده و وارون ناپذیر، یک چکیده 128 بیتی 16 - بایتی - را از کل پیام استخراج میکند به گونهای که تمام بیتهای خروجی از یکایک بیتهای متن اصلی تاثیر می-پذیرند .
در سال 1992 توسط برسون، حمله تفاضلی به یک دور الگوریتم و در سال 1993 توسط بوور و باسیلیزر، یافتن تصادم های مجازی و در سال 1996 حمله برخوردی در تابع فشرده ساز MD5 صورت گرفت و پس از آن در سالهای بعد، نقص های گوناگون آن مشخص گردید و امروزه امن محسوب نمیشود. در سال 2004 حمله ی برخوردی برای تابع MD5 منتشر شد [4] کهاین نتایج[5] حملات برخورد را روی MD5 بهبود داده است .همچنین حملاتی ارائه شده است[6] که میتواند حملات برخورد را در تابعMD5 در حدود یک دقیقه روی یک کامپیوتر استاندارد پیدا کند . حملات برخورد روی MD5 با موفقیت انجام شده که هم اکنون بیشترنتایج تحقیقات برای بهبود سرعت آشکار سازی برخوردها منتشر شده است و نتایج فوق اهداف کافی را برای حذف کردن MD5 در کاربردها فراهم میکند .
SHA-1تابعی با خروجی 160 بیتی میباشد که نخستین بار در سال 1993 توسطNIST5 به صورت درهم ساز امن در آمده است. مبنای این الگوریتم، تابع MD5 می باشد.SHA-1 نسخه تکنیکی تراز SHA می باشد، به این دلیل که با افزودن شیفت چرخشی چپ6به نسخه قبل، موجب افزوده شدن امنیت شده است7] و .[8 با توجه به اینکه SHA-1 نسخه ارتقا یافته SHA-0 بود که در سال 1993 توسط بیهام درهم کوبیده شد، لذا SHA-1 نیز در اواسط سال 2005 یک گروه چینی به سرپرستی ژیان ونگ اعلام داشتند که الگوریتمی را برای یافتن دو پیام با چکیده مساوی پیدا کردهاند که پیچیدگی بسیار کمی در مقایسه با روش سعی و خطا دارد . و نهایتاً در سال 2006 دو نفر به نامهای کریستین رچبرگر و کریستوف دی کانیر اعلام کردندکه برخوردی را کشف کردهاند . و خبر کشف برخورد SHA-1 در کنفرانس CRYPTO 2006رسماً اعلام شد.
تابع Ripemd-160 نیز برای طراحی کد احراز هویت پیام درهمسازی شده به کار رفته است . این تابع [9] نخستین بار در سال 1996، توسط بارت پرنیل، آنتوان باسیلیر، هانس دوبرتین معرفی شد. این تابع در حقیقت جایگزینی برای توابعی چون Ripemd,MD4, MD5 می باشد.تابع 160 بیتی مربوطه از 5 کلمه 32 بیتی تشکیل شده است. این تابع در حقیقت از دو MD4 موازی با تغییراتی ساخته شده است که در انتها دو کلمه چپ و راست به هم افزوده می شوند.
با توجه به آنکه امروزه، توابعی چونSHA-1,MD5 وRIPEMD -160 از جمله توابع درهم سازی می باشندکه تحت حمله تصادم قرار گرفته و کارایی خود را تا حدی برای اهدف امنیتی از دست داده اند .[3] از این رو ارائه تابع درهم سازی که قادر به تامین ویژگی های امنیتی برای کد احراز هویت پیام درهمسازی شده باشد، از اهمیت زیادی برخوردار است.هدف این مقاله ارائه کد احراز هویت پیام درهمسازی شده با توابع جدید درهمسازی مانند Blake ، Grostl و Keccack می باشد تا بتواند ویژگی های امنیتی موردنیاز را با استفاده از رمزنگاری تامین نماید.
-3 تست های انجام شده
تعدادی تست غیر رسمی روی ایده پیاده سازی، با نرم افزار Matlab انجام شده است. این تستها به ازای مقدار 256 بیتی با توابع Blake،GrostlوKeccak و تابعSHA-256 مقایسه شده است و به عنوان کاندیدی برای پیادهسازی کد احراز هویت پیام درهمسازی شده برگزیده شده اند.
-1-3 تست اثر بهمنی - - In Order Test Avalanche
تست اثر بهمنی [10] به این معناست که با تغییر بسیار کوچک در ورودی، خروجی به مقدار زیاد تغییر نماید. نسخه 256 بیتی توابعBlake ،Grostl و Keccak و همچنین با توابع SHA-256 ، SHA-1 و MD5 مقایسه شده است. در صورتی که تعریف زیر را برای اثر بهمنی داشته باشیم: Avalanche - i - =Hamming Distance - Hi ,Hj - میانگین مقدار اثر بهمنی را نیز به صورت زیر تعریف نماییم: Average Avalanche=1N ∑Ni=1 Avalanche - i - در صورتی که تعداد نمونه ها برای به دست آوردن این مقدار برابر N باشد، سه نوع تست از اثر بهمنی در نظر گرفته شده است: در این تست تمامی بیت ها برای پیام اولیه به طول 1000 بایت در نظر گرفته میشود.
در هر بار اجرای حلقه یک بیت از پیام ورودی به طور تصادفی تغییر داده می شود وهمچنین کلید به صورت ثابت در نظر گرفته شده است. مقایسه اثر بهمنی خروجی با توجه به خروجی پیام اولیه صورت می گیرد. پس از اتمام حلقه، میانگین محاسبه می شود.نتایج این تست برای نسخه 256 بیتی توابعBlake ، Grostl و Keccak و همچنین نتایجی از تابع SHA-256 در شکل های زیر دیده میشود . توابع Blake،Grostl ،Keccak و SHA-256 با هم مقایسه شده است که این مقایسه نیز در شکل 2 ،3، 4 ،5 و جدول 1 دیده میشودو توزیع مقدار اثر بهمنی برای توابع کد احراز هویت درهم سازی شده، نشان از توزیع با مقادیر بالاتر برای Keccak بوده است.