شما اینجا هستید
آموزش » بررسی معروف ترین الگوریتم های Hash در رمز نگاری

بررسی انواع توابع درهم سازhash function

بررسی انواع توابع درهم ساز

جدید  دریافت فایل پی دی اف مقاله (انتشار فقط با ذکر منبع مجاز ) دریافت

معرفی اجمالی امضای دیجیتال :

در روش امضای دیجیتال مبتنی بر چکیده پیام ، از هر سند یک چکیده کوتاه چند بایتی استخراج می شود . این چکیده کوتاه به طرز بسیار پیچیده ای از تک تک بیت ها و جایگاه آن ها در متن تاثیر می پذیرد و به نحوی محاسبه و استخراج می شود که هرگونه تغییر جزیی یا کلی در متن باعث تغییرات چشمگیر در چکیده آن خواهد شد .

در واقع امضای دیجیتال چیزی جز یک رشته عددی که به روش پیچیده ای از متن یک سند استخراج و پس از رمزنگاری با کلید خصوصی صاحب سند ، به اصل سند ضمیمه و ارسال می شود نمی باشد .

برای آنچه در بالا گفته شد دو الگوریتم عمده نیاز می باشد :

  • الگوریتمی بای محاسبه و استخراج چکیده پیام

  • الگوریتمی برای رمزنگاری عمومی

برای محاسبه چکیده پیام شاید سخت ترین کار ممکن معرفی یک تابع درهم ساز مناسب و قوی باشد که به راحتی برخوردی برای آن کشف نشود . هرگاه دو پیام کشف شود که با وجود اختلاف ، داری چکیده یکسانی باشند می گوییم برخورد (collision)کشف شده است .

حال به معرفی انواع الگوریتم های درهم سازی به شرح ذیل می پردازیم :

 

 

۱ – الگوریتم MD5(Message Digest Version 5) :

این روش توسط آقای رونالد ری وست معرفی گردید .در واقع این تابع درهم ساز نسخه پنجم از توابعی است که آقای ری وست برای محاسبه چکیده پیام در سال ۱۹۹۱ ارائه کرد .

این الگوریتم ها در ۱۵ سال اخیر کاربردهای بسیاری پیدا کرده است ولی این تابع درهم ساز نیز مانند اسلاف پیشین خود (MD4,MD3,……) در ۱۸ مارس سال ۲۰۰۶ توسط یک کامپیوتر کیفی در عرض یک دقیقه جعل شد و پیام مشابه ای تولید گردید .

الگوریتم MD5 پیامی را با هر طولی پذیرفته و آن را به قطعات ۵۱۲ بیتی تقسیم می کند ، با این استثنا که اخرین قطعه باید ۴۴۸ بیت باشد تا با احتساب ۶۴ بیت که به انتهای آن اضافه می شود تا کلیه قطعات به صورت ۵۱۲ بایتی درآیند .

هرگاه طول مناسب نباشد به انتهای آن مقادیر زائد اضافه می شود .هر بلوک ۵۱۲ بایتی در آرایه ای ذخیره می شود و داده های این آرایه درهم سازی می شوند و سپس مقادیر با هم جمع شده و شیفت داده می شوند . در این روش طول چکیده پیام ۱۶ بایت است .

الگوریتم MD5 درسطح بسیار وسیعی برای تضمین دست نخوردگی و سلامت داده ها کاربرد یافته بود و نهایتا در سال ۲۰۰۶ شکست خورد و در واقع یک برخورد (collision)کشف گردید .

 

 

۲- الگوریتم SHA-1(Secure Hash Algoritm Version 1) :

این الگوریتم توسط اداره استانداردها و فناوری های مدرن آمریکا جهت استفاده عموم بوجود آمد . این الگوریتم در سال ۱۹۹۳ معرفی شد و جایگزین مناسبی برای MD5 بود . مهم تر آن که عنوان استاندارد دولت فدرال آمریکا را با خود یدک می کشید .

البته این روش هم در سال ۲۰۰۵ در هم کوبیده شد .

این روش مانند MD5 است با این تفاوت که طول چکیده پیام ۲۰ بایت می باشد .این روش هم مانند MD5 از or و حلقه های تکرار استفاده می کند .

این الگوریتم در بسیاری از محصولات سخت افزاری و نرم افزاری به کار گرفته شده بود ، در واقع SHA -1 نسخه ارتقا یافته ای از SHA-0 بود که در سال ۱۹۹۳ توسط بیهام در هم کوبیده شده بود . بسیاری از رمزشکن هامعتقد بودند SHA-1 هم به دلیل شباهت به SHA-0 قابل شکستن است و برای مقابله با این ایده سازمان استاندارد آمریکا سریعا نسخه های SHA-256,SHA-512 را معرفی کرد ولی نهایتا برخورد در SHA-1 در سال ۲۰۰۵ و توسط گروهی چینی به سرپرستی ژیایون ونگ شناسایی شد و درستی این ادعا توسط بروس شاینر از بزرگان رمزنگاری جهان اثبات شد و نهایتا برخوردی در سال ۲۰۰۶ رسما ثبت گردید .

از آن جا که پیچیدگی در این الگوریتم دو به توان شصت ونه اعلام شده بود هنوز اندک امیدی باقی بود که در مدت ۶ ماه روش جایگزینی اعلام شود .

 

 

 

 

۳- الگوریتم SHA-2(Secure Hash Algorithm version 2) :

در واقع این روش همانند روش SHA-1 مورد تایید سازمان استاندارد دولت فدرال آمریکا می باشد و از طول چکیده ۲۰ بایتی استفاده می کند . این الگوریتم دارای انواع مختلفی از جمله : SHA-256,SHA-224,SHA-384,SHA-512 می باشد که عدد انتهایی ، طول چکیده پیام تولید شده به بیت را توسط توسط الگوریتم مشخص می کند .

این الگوریتم در سال ۲۰۰۲ معرف و در اختیار عموم قرار گرفت .SHA-256,SHA-512 هر دو الگوریتم های جدیدی به حساب می آیند که اولی بر روی کلمات ۳۲ بیتی و دومی بر روی کلمات ۶۴ بیتی کار می کند .

این الگوریتم ها از لحاظ ساختاری مشابه اند ولی در تعداد شیفت چرخشی ، تعداد دور حلقه و مقادیر ثابت ها با هم فرق دارند .

در این الگوریتم بر خلاف SHA-1 سعی شده است از روش های استفاده شود تا هر چه بیشتر مقادیر ثابت ها تصادفی باشند و امکان پیداکردن آن ها وجود نداشته باشد و این مقادیر در هر حلقه تکرار تغییر می کنند .

 

 

۴- الگوریتم SHA-3(Secure Hash Algorithm Version 3) :

الگوریتم SHA-3 در سال ۲۰۰۶ معرفی شد . البته معرفی این الگوریتم به معنای پایان کار SHA-2 و کشف برخورد در این الگوریتم نبود ، بلکه الگوریتم SHA-3 ارائه شده است تا در صورتی که بر SHA-2 حمله ای وارد شد و شکست خورد ، SHA-3 جایگزین آن شود.

در واقع این الگوریتم بر پایه الگوریتم Keccak مطرح شده است که این الگوریتم هم از بین ۵۱ الگوریتم مطرح شده ، پذیرفته شده است و در سال های ۲۰۰۶ تا ۲۰۰۸ در رقابتی سنگین به عنوان الگوریتم برتر پذیرفته شد و پس از آن به مدت ۲ سال مورد حمله قوی ترین رمز شکنان جهان قرار گرفت.

نهایتا این الگوریتم در سال ۲۰۱۲ به عنوان الگوریتم مورد قبول سازمان استاندارد آمریکا پذیرفته گردید .

در این الگوریتم تعداد حلقه ها از L+12 تا ۲L+12 افزایش یافته و میزان شیفت چرخشی به نزدیکترین توان ۲ افزایش یافته است .

بعد از شکست SHA-1 رمز نگاران به این نتیجه رسیدند که باید دیدگاه خود را تغییر دهند. برای همین در SHA-3 دیدگاه خاصی به نام اسفنجی (Sponge ) مطرح گردید که براساس این دیدگاه داده ها به راحتی جذب می شوند اما به سختی خارج می شوند. در حقیقت طراحان این روش از سیستم رمز گذاری تصدیق و درخت درهم سازی (tree hash ) در معماری خاصی استفاده می کنند .

 

منابع :

۱-کتاب امنیت دادها دکتر ملکیان ویراست چهارم

۲-سایت ها و منابع علمی از جمله سایت ویکی پدیا و کتابامنیت شبکه نوشته جان وایلی

انتشار یافته در وب سایت مهندس مسعود معاونی

شما هم می توانید دیدگاه خود را ثبت کنید

کامل کردن گزینه های ستاره دار (*) الزامی است -
آدرس پست الکترونیکی شما محفوظ بوده و نمایش داده نخواهد شد -

مهندس مسعود معاونی | آموزشی، تحلیلی،کارآفرینی،فناوری