اس‌اچ‌ای-۲

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

در رمزنگاری، SHA-2 مجموعه‌ای از توابع درهم سازی محسوب می‌شود (SHA-224 , SHA-256 , SHA-384 , SHA-512) که توسط آژانس امنیت ملی ایالات متحده آمریکا طراحی و توسط مؤسسه ملی فناوری و استانداردها درسال ۲۰۰۱ به عنوان استاندارد پردازش اطلاعات انتشار یافت. SHA برگرفته از الگوریتم درهم سازی ایمن است که به انگلیسی اگر بنویسیم و ابتدای آنها را در نظر بگیریم این عبارت مخفف را به ما می‌دهد. الگوریتم SHA-2 نسبت به نسخهٔ قبلی خود تغییرات اساسی کرده‌است. این الگوریتم شامل ۴ تابع درهم سازی است با چکید پیام‌های ۲۲۴ و ۲۵۶ و ۳۸۴ و 512.

در سال ۲۰۰۵ خطاهای امنیتی در الگوریتم اس‌اچ‌ای-۱ کشف شد که ممکن بود منجر به شکست آن در حوزه ریاضیات به کار رفته در آن شود و از آن موقع بود که نیاز به یک الگوریتم ایمن تر احساس شد. اگرچه 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[ویرایش]

اطلاعات بیشتر: Merkle–Damgård construction
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، کلیهٔ آنها نسبت به حملات تداخلی آسیب پذیر هستند. این دسته از حملات به حمله کننده اجازه پیشرفت و نفوذ بیشتر را می‌دهند.

منابع[ویرایش]