الگوریتمهای ایمن درهمساز | |
---|---|
مفاهیم | |
توابع درهمساز · اساچای · دیاساِی | |
استانداردهای اصلی | |
اساچای۰ · اساچای۱ · اساچای۲ · اساچای-۳ | |
الگوریتم هش امن ۲ رمزنگاری، SHA-2 Secure Hash algorithm 2 مجموعهای از توابع درهم سازی محسوب میشود (SHA-224 , SHA-256 , SHA-384 , SHA-512) که توسط آژانس امنیت ملی ایالات متحده آمریکا طراحی و توسط مؤسسه ملی فناوری و استانداردها در سال ۲۰۰۱ به عنوان استاندارد پردازش اطلاعات انتشار یافت. SHA برگرفته از الگوریتم درهمسازی ایمن است که به انگلیسی اگر بنویسیم و ابتدای آنها را در نظر بگیریم این عبارت مخفف را به ما میدهد. الگوریتم SHA-2 نسبت به نسخهٔ قبلی خود تغییرات اساسی کردهاست. این الگوریتم شامل ۴ تابع درهمسازی است با چکید پیامهای ۲۲۴ و ۲۵۶ و ۳۸۴ و ۵۱۲.
در سال ۲۰۰۵ خطاهای امنیتی در الگوریتم اساچای-۱ کشف شد که ممکن بود منجر به شکست آن در حوزه ریاضیات به کار رفته در آن شود و از آن موقع بود که نیاز به یک الگوریتم ایمن تر احساس شد. اگرچه SHA-2 از لحاظ زیادی شبیه نسخه ۱ است ولی این دست از حملات ذکر شده برای آن پیشبینی نشدهاست.
با این تفاسیر الگوریتم دیگری هم در حال توسعهاست با نسخه ۳ که NIST برای انتخاب بهترین الگوریتم با این نام مسابقهای مثل دورههای قبل برگزار کرده که تا پایان سال ۲۰۱۲ پیشبینی شده به طول انجامد.
تابع درهمسازی
NIST توابع درهم سازیی را منتشر کرد که بر اساس طول چکیده آنها نامگذاری شدند (به تعداد بیت). به نامهای sha-224 , sha-256 , sha-384 , sha-512 هستند که به مجموعهٔ آنها در کل sha-2 میگویند.
الگوریتمهای با طول ۲۵۶ و ۵۱۲ به نام رمان معروفند و محاسباتشان با کلمات ۳۲ و ۶۴ بیتی صورت میگیرد. این دو، تعداد شیفت و ساختار متفاوت و نزدیک به هم دارند و هم چنین در تعداد دورهای تغییر و مقادیر اولیه به کار رفته متفاوت هستند.
SHA-2 به گستردگی SHA-1 مورد استفاده قرار میگیرد با وجود اینکه امنیت بهتری نسبت به نسخهٔ پیشین خود داراست. دلایل احتمالی آن را میتوان کمبود حمایت از این الگوریتم به خصوص در سیستمهای تحت ویندوز xp و پایینتر از آن دانست. البته در سیستمهای لینوکس برای احراز هویت فایلهای debian از ۲۵۶ بیتی این الگوریتم استفاده میشود. از دیگر موارد استفاده آن در سیستمهای DKIM میتوان نام برد. از ۵۱۲ بیتی آن در International Criminal Tribunal of the Rwandan genocide استفاده میشود. به زودی سیستمهای بر پایهٔ سیستم عامل یونیکس برای درهمسازی کردن رمزعبور از نسخههای ۲۵۶ و ۵۱۲ بیتی آن استفاده خواهند نمود. همچنین از سال ۲۰۱۰ به بعد آژانسهای دولت آمریکا باید استاندارد مورد استفاده خود را از نسخه ۱ این الگوریتم به نسخه ۲ ارتقا دهند.
مقایسهٔ توابع SHA
Algorithm and variant |
Output size (bits) | Internal state size (bits) | Block size (bits) | Max message size (bits) | Word size (bits) | Rounds | Operations | Collisions found | Example Performance (MiB/s)[۱] | |
---|---|---|---|---|---|---|---|---|---|---|
MD5 (as reference) | ۱۲۸ | ۱۲۸ | ۵۱۲ | ۲۶۴ − ۱ | ۳۲ | ۶۴ | and,or,xor,rot | Yes | ۲۵۵ | |
SHA-0 | ۱۶۰ | ۱۶۰ | ۵۱۲ | ۲۶۴ − ۱ | ۳۲ | ۸۰ | +,and,or,xor,rot | Yes | - | |
SHA-1 | ۱۶۰ | ۱۶۰ | ۵۱۲ | ۲۶۴ − ۱ | ۳۲ | ۸۰ | +,and,or,xor,rot | Theoretical attack (2۵۱)[۲] | ۱۵۳ | |
SHA-2 | SHA-256/224 | ۲۵۶/۲۲۴ | ۲۵۶ | ۵۱۲ | ۲۶۴ − ۱ | ۳۲ | ۶۴ | +,and,or,xor,shr,rot | None | ۱۱۱ |
SHA-512/384 | ۵۱۲/۳۸۴ | ۵۱۲ | ۱۰۲۴ | ۲۱۲۸ − ۱ | ۶۴ | ۸۰ | +,and,or,xor,shr,rot | None | ۹۹ |
سیستم تست شده در جدول بالا سیستمی یک ترید یا ریسه(thread) با پردازنده intel Core 2 1.83Ghz است تحت ویندوز Vista ایکس۸۶. لازم است ذکر شود نوع ۵۱۲ بیتی بر روی سیستمهای ۶۴ بیتی بسیار سریعتر از ۳۲ بیتی است.
کاربردها
از این الگوریتم در TLS , SSL , PGP , SSH , توسعه چندمنظوره پست الکترونیک اینترنت/امن، بیتکوین و آیپیسک استفاده میشود.
تحلیل رمز و ارزشیابی
وقتی یک چکیده پیام با طول L داریم در اغلب موارد میتوانیم رمز شدهٔ این پیام را با همین طول با تعداد ۲ به توان L مورد حملهٔ Brute Force قرار داد و آن را افشا نمود. که به آن حمله Preimage Attack گفته میشود. که حتی میتواند غیر وابسته به طول پیام یا شرایط محاسباتی حمله باشد. مسئله دومی که در اینجا مطرح میشود پیدا کردن دو الگوریتم رمزنگاری متفاوت است که هر دو یک چکیده پیام را تولید کنند. در چنین مواقعی میگوییم یک برخورد به وجود آمده و زمان لازم برای کشف آن از مرتبهٔ ۲ به توان L/2 است. حملهٔ اخیر را با نام حملهٔ روز تولد یاد میکنند. با دلایل ذکر شده و یک سری دلایل محاسباتی طول کلید تابع درهمسازی را با نصف طول چکیده پیام رمز شده در رمزنگاری متقارن مقایسه میکنند تا نتایج بهتری بدست آورند. با این شرایط SHA-1 طولی بالغ بر ۸۰ خواهد داشت تا امنیت لازم را برای عملیت رمزنگاری تضمین کند.
البته دانشمندان رمزنگاری، برخوردهای دوتایی برای الگوریتم SHA-0 پیدا کردند و الگوریتمهایی هم ارائه کردند که میتواند ثابت کند چنین برخوردی در SHA-1 هم میتواند به وجود بیاید. با وجود این برخورد در الگوریتم SHA-1 تعداد کل حالات به جای آنکه از مرتبهٔ ۲ به توان ۸۰ باشد، کادرهمسازی یافته و از مرتبهٔ همان عدد به توان ۴۰ خواهد شد که زمان بسیار کمتری را برای افشا نیازمند است.
در اصطلاح امنیت کاربردی، نگرانی ویژه در مورد این گونه حملات تازه بنیاد اینست که روزی ممکن است راه افشا را از این هم که هست راحتتر کنند. و البته استفاده از الگوریتمهای رمزنگاری قدرتمندتر قدری اطمینان بخش است. نرمافزارهایی که رمز عبور را با استفاده از درهمسازی ذخیره میکنند کمتر در معرض خطر collision هستند. برای این موارد میتوان از حملات Preimage Attack استفاده کرد. بدین صورت که پس از دستیابی به رمز عبور، آن را با الگوریتمی که تبدیل کردند، به صورت معکوس، رمز واقعی و Plain Text بدست میآورند. در چنین مواقعی هم وجود یک الگوریتم درهمسازی قدرتمند احساس میشود.
به دلیل ویژگیهای ساختاری الگوریتمهای درهمسازی SHA، کلیهٔ آنها نسبت به حملات تداخلی آسیبپذیر هستند. این دسته از حملات به حملهکننده اجازه پیشرفت و نفوذ بیشتر را میدهند.
منابع
- ↑ "Crypto++ 5.6.0 Benchmarks". Archived from the original on 15 اكتبر 2008. Retrieved 2011-02-27.
{{cite web}}
: Check date values in:|archive-date=
(help) - ↑ "Classification and Generation of Disturbance Vectors for Collision Attacks against SHA-1" (PDF). Retrieved 2011-11-08.
- Henri Gilbert, Helena Handschuh: Security Analysis of SHA-256 and Sisters. Selected Areas in Cryptography 2003: pp175–193
- "Proposed Revision of Federal Information Processing Standard (FIPS) 180, Secure Hash Standard". Federal Register. ۵۹ (۱۳۱): ۳۵۳۱۷–۳۵۳۱۸. ۱۹۹۴-۰۷-۱۱. Retrieved 2007-04-26.
{{cite journal}}
: Cite has empty unknown parameter:|coauthors=
(help)[پیوند مرده]