اس‌اچ‌ای-۱
آنالیز و ارزیابی رمزنگاری

وقتی یک چکیده پیام با طول L داریم در اغلب موارد می‌توانیم رمز شدهٔ این پیام را با همین طول با پیچیدگی ۲ به توان L، مورد حملهٔ Brute Force قرار داد و آن را افشا نمود. به آن حمله Preimage Attack هم گفته می‌شود. که حتی می‌تواند غیر وابسته به طول پیام یا شرایط محاسباتی حمله باشد. مسئله دومی که در اینجا مطرح می‌شود پیدا کردن دو الگوریتم رمزنگاری متفاوت است که هر دو یک چکیده پیام را تولید کنند. در چنین مواقعی می‌گوییم یک برخورد به وجود آمده و زمان لازم برای کشف آن از مرتبهٔ ۲ به توان L/2 است. حملهٔ اخیر را با نام حملهٔ روز تولد یاد می‌کنند. با دلایل ذکر شده و یک سری دلایل محاسباتی طول کلید تابع در هم‌سازی را با نصف طول چکیده پیام رمز شده در رمزنگاری متقارن مقایسه می‌کنند تا نتایج بهتری بدست آورند. با این شرایط SHA-1 طولی بالغ بر ۸۰ خواهد داشت تا امنیت لازم را برای عملیات رمزنگاری تضمین کند.
البته دانشمندان رمزنگاری، برخوردهای دوتایی برای الگوریتم sha-0 و نیز sha-1 پیدا کردند. با وجود این برخورد در الگوریتم sha-1 تعداد کل حالات به جای آنکه از مرتبهٔ ۲ به توان ۸۰ باشد کادرهم‌سازی یافته و از مرتبهٔ همان عدد به توان ۴۰ خواهد شد که زمان بسیار کمتری را برای افشا نیازمند است.
بعضی کاربردهایی که از درهم سازی رمزنگاری استفاده می‌کنند (مثل ذخیره‌سازی رمزعبور) خیلی کم توسط حملهٔ برخورد تحت تأثیر قرار می‌گیرند. ساختن کلمه‌عبوری که برای یک حساب‌کاربری کار می‌کند علاوه بر preimage attack نیازمند دسترسی به hash کلمه‌عبور اولیه می‌باشد که ممکن است بدیهی نباشد. برعکس کردن رمزنگاری کلمه‌عبور (به عنوان مثال برای بدست آوردن کلمه‌عبوری که بتوان برای یک حساب کاربری دیگر کاربر استفاده کرد) توسط این حمله‌ها ممکن نیست. (با این حال یک الگوریتم hash امن نمی‌تواند از یک حمله brute-force به یک کلمه‌عبور ضعیف جلوگیری کند)
در مورد امضای دیجیتال اسناد حمله‌کننده نمی‌تواند به سادگی یک امضا از یک سند موجود را جعل کند. برای این کار باید دو سند را تولید کند. یکی بدون آسیب و دیگری آسیب زننده و کاری کند تا نگه‌دارنده کلید خصوصی نسخه بدون آسیب را امضا کند. البته شرایطی وجود دارد که این کار ممکن باشد. تا پایان سال ۲۰۰۸ ایجاد گواهی‌نامه‌های جعلی SSL با استفاده از حمله برخورد MD5 ممکن بود.
به خاطر ساختار بلوکی و تکرارشونده الگوریتم‌ها و غیبت مراحل پایانی اضافی تمام توابع خانواده SHA (به جز SHA-3) نسبت به حملات length-extension و partial-message collision attacks آسیب‌پذیر هستند.
این حملات به حمله‌کننده اجازه می‌دهند تا یک پیام که فقط توسط یک keyed hash – SHA(message || key) or SHA(key || message) – امضا شده‌است با استفاده از گسترش پیام و محاسبه دوباره hash بدون دانستن کلید جعل کنند.
یک بهبود ساده برای جلوگیری از این حمله دو بار درهم‌سازی است SHAd(message) = SHA(SHA(0b || message)) (طول 0b و zero block برابر اندازه بلوک الگوریتم درهم‌سازی می‌باشد)
در اصطلاح امنیت کاربردی، نگرانی ویژه در مورد این گونه حملات تازه بنیاد اینست که روزی ممکن است راه افشا را از این هم که هست راحتتر کنند. و البته استفاده از الگوریتمهای رمزنگاری قدرتمندتر قدری اطمینان بخش است. نرم‌افزارهایی که رمز عبور را با استفاده از درهم‌سازی ذخیره می‌کنند کمتر در معرض خطر collision هستند. برای این موارد می‌توان از حملات Preimage Attack استفاده کرد. بدین صورت که پس از دستیابی به رمز عبور، آن را با الگوریتمی که تبدیل کردند، به صورت معکوس، رمز واقعی و Plain Text بدست می‌آورند. در چنین مواقعی هم وجود یک الگوریتم درهم‌سازی قدرتمند احساس می‌شود.
به دلیل ویژگی‌های ساختاری الگوریتم‌های درهم‌سازی sha، کلیهٔ آن‌ها نسبت به حملات تداخلی آسیب‌پذیر هستند. این دسته از حملات به حمله‌کننده اجازه پیشرفت و نفوذ بیشتر را می‌دهند.