موضوع مقاله: اس‌اچ‌ای-۲ | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # اس‌اچ‌ای-۲ | مقدمه: SHA برگرفته از الگوریتم درهم‌سازی ایمن است که به انگلیسی اگر بنویسیم و ابتدای آن‌ها را در نظر بگیریم این عبارت مخفف را به ما می‌دهد. | ## بخش 1: اس‌اچ‌ای-۲ | در سال ۲۰۰۵ خطاهای امنیتی در الگوریتم اس‌اچ‌ای-۱ کشف شد که ممکن بود منجر به شکست آن در حوزه ریاضیات به کار رفته در آن شود و از آن موقع بود که نیاز به یک الگوریتم ایمن تر احساس شد. اگرچه SHA-2 از لحاظ زیادی شبیه نسخه ۱ است ولی این دست از حملات ذکر شده برای آن پیش‌بینی نشده‌است. با این تفاسیر الگوریتم دیگری هم در حال توسعه‌است با نسخه ۳ که NIST برای انتخاب بهترین الگوریتم با این نام مسابقه‌ای مثل دوره‌های قبل برگزار کرده که تا پایان سال ۲۰۱۲ پیش‌بینی شده به طول انجامد. تابع درهم‌سازی NIST توابع درهم سازیی را منتشر کرد که بر اساس طول چکیده آن‌ها نامگذاری شدند (به تعداد بیت). الگوریتم‌های با طول ۲۵۶ و ۵۱۲ به نام رمان معروفند و محاسباتشان با کلمات ۳۲ و ۶۴ بیتی صورت می‌گیرد. این دو، تعداد شیفت و ساختار متفاوت و نزدیک به هم دارند و هم چنین در تعداد دورهای تغییر و مقادیر اولیه به کار رفته متفاوت هستند. SHA-2 به گستردگی SHA-1 مورد استفاده قرار می‌گیرد با وجود اینکه امنیت بهتری نسبت به نسخهٔ پیشین خود داراست. دلایل احتمالی آن را می‌توان کمبود حمایت از این الگوریتم به خصوص در سیستم‌های تحت ویندوز xp و پایین‌تر از آن دانست. البته در سیستم‌های لینوکس برای احراز هویت فایلهای debian از ۲۵۶ بیتی این الگوریتم استفاده می‌شود. | ## بخش 2: اس‌اچ‌ای-۲ | به زودی سیستم‌های بر پایهٔ سیستم عامل یونیکس برای درهم‌سازی کردن رمزعبور از نسخه‌های ۲۵۶ و ۵۱۲ بیتی آن استفاده خواهند نمود. همچنین از سال ۲۰۱۰ به بعد آژانس‌های دولت آمریکا باید استاندارد مورد استفاده خود را از نسخه ۱ این الگوریتم به نسخه ۲ ارتقا دهند. لازم است ذکر شود نوع ۵۱۲ بیتی بر روی سیستم‌های ۶۴ بیتی بسیار سریعتر از ۳۲ بیتی است. در طراحی برنامه ها و بازی های مدرن دیجیتال که مبتنی بر نمودارهای افزایشی یا کاهشی هستند، توابع هش خانوادهٔ SHA-2 برای ایجاد شفافیت و جلوگیری از تقلب مورد استفاده قرار می‌گیرند. در این برنامه ها، ضریب رشد پیش از شروع هر دور توسط الگوریتم‌های شبه‌تصادفی (PRNG) تولید و با استفاده از توابعی مانند SHA-256 هش می‌شود. این مقدار هش‌شده به‌عنوان تعهد رمزنگاری‌شده در اختیار کاربران قرار می‌گیرد و پس از پایان بازی، مقدار اصلی برای تطبیق با هش اولیه افشا می‌شود. این سازوکار که با عنوان «شفافیت قابل اثبات» (Provably Fair) شناخته می‌شود، به کاربران امکان می‌دهد صحت فرآیند بازی را به صورت مستقل راستی‌آزمایی کنند. تحلیل رمز و ارزشیابی وقتی یک چکیده پیام با طول L داریم در اغلب موارد می‌توانیم رمز شدهٔ این پیام را با همین طول با تعداد ۲ به توان L مورد حملهٔ Brute Force قرار داد و آن را افشا نمود. مسئله دومی که در اینجا مطرح می‌شود پیدا کردن دو الگوریتم رمزنگاری متفاوت است که هر دو یک چکیده پیام را تولید کنند. | ## بخش 3: اس‌اچ‌ای-۲ | در چنین مواقعی می‌گوییم یک برخورد به وجود آمده و زمان لازم برای کشف آن از مرتبهٔ ۲ به توان L/2 است. با دلایل ذکر شده و یک سری دلایل محاسباتی طول کلید تابع درهمسازی را با نصف طول چکیده پیام رمز شده در رمزنگاری متقارن مقایسه می‌کنند تا نتایج بهتری بدست آورند. با این شرایط SHA-1 طولی بالغ بر ۸۰ خواهد داشت تا امنیت لازم را برای عملیت رمزنگاری تضمین کند. البته دانشمندان رمزنگاری، برخوردهای دوتایی برای الگوریتم SHA-0 پیدا کردند و الگوریتم‌هایی هم ارائه کردند که می‌تواند ثابت کند چنین برخوردی در SHA-1 هم می‌تواند به وجود بیاید. با وجود این برخورد در الگوریتم SHA-1 تعداد کل حالات به جای آنکه از مرتبهٔ ۲ به توان ۸۰ باشد، کادرهم‌سازی یافته و از مرتبهٔ همان عدد به توان ۴۰ خواهد شد که زمان بسیار کمتری را برای افشا نیازمند است. در اصطلاح امنیت کاربردی، نگرانی ویژه در مورد این گونه حملات تازه بنیاد اینست که روزی ممکن است راه افشا را از این هم که هست راحتتر کنند. بدین صورت که پس از دستیابی به رمز عبور، آن را با الگوریتمی که تبدیل کردند، به صورت معکوس، رمز واقعی و Plain Text بدست می‌آورند. | ## جمع‌بندی | به دلیل ویژگی‌های ساختاری الگوریتم‌های درهم‌سازی SHA، کلیهٔ آن‌ها نسبت به حملات تداخلی آسیب‌پذیر هستند.