اس‌اچ‌ای-۳
اس‌اچ‌ای۳ (الگوریتم امن درهم‌ساز ۳) آخرین عضو خانواده الگوریتم امن درهم‌ساز است که توسط مؤسسه ملی فناوری و استانداردها در ۵ اوت ۲۰۱۵ منتشر شد. ساختار داخلی اس‌اچ‌ای۳ با ساختار اس‌اچ‌ای-۱ و اس‌اچ‌ای-۲ که بیشتر شبیه ام‌دی۵ می‌باشند تفاوت دارد، اگرچه عضوی از همان سری استانداردها محسوب می‌شود.
اس‌اچ‌ای۳ یک زیر مجموعه از خانواده بدوی گسترده‌تر رمزنگاری Keccak() است، که توسط گیدو برتونی، جوان دیمِن، مایکل پیترز و ژیل وان آش طراحی شده و بر روی RadioGatún بنا شده‌اند. نویسندگان Keccak کاربردهای اضافی برای این تابع ارائه داده‌اند، که البته هنوز توسط NIST استاندارد نشده‌اند، از جمله رمز دنباله‌ای، یک سیستم رمزگذاری تأیید هویت، یک برنامه درهم‌ساز «درختی» برای درهم‌سازی سریعتر بر روی برخی معماری‌های خاص، و رمزهای AEAD کیاک(Keyak) و کِتجه(Ketje).
Keccak مبتنی بر یک رویکرد جدید به نام ساخت اسفنجی است. ساخت اسفنجی مبتنی بر یک تابع تصادفی گسترده تصادفی یا جایگشت تصادفی است و این امکان را می‌دهد که هر مقدار از داده وارد شود("جذب" در اصطلاحات اسفنجی)، و هر مقدار از داده بیرون انداخته شود("فشردن")، در حالی که با توجه به همه ورودی‌های قبلی به عنوان یک تابع نیمه تصادفی عمل می‌کند. این منجر به انعطاف‌پذیری زیادی می‌شود.
NIST در حال حاضر برنامه ای برای برداشت اس‌اچ‌ای۲ یا حذف آن از استاندارد اصلاح شده ایمن درهم‌سازی ندارد. هدف از اس‌اچ‌ای۳ این است که می‌تواند در برنامه‌های فعلی در صورت لزوم مستقیماً جایگزین اس‌اچ‌ای۲ شود و استحکام ابزار کلی الگوریتم درهم‌ساز NIST را به طرز قابل توجهی بهبود بخشد.
سازندگان الگوریتم‌های Keccak و توابع اس‌اچ‌ای۳ پیشنهاد می‌کنند از تابع سریعتر KangarooTwelve با پارامترهای تنظیم شده و حالت درهم‌سازی درختی جدید بدون سربار اضافی، برای پیام‌های با اندازه کوچک استفاده کنند.
الگوریتم Keccak اثری از گیدو برتونی، جوان دیمِن (که وی همچنین رمزنگاری Rijndael را با همکاری وینسنت رجمن طراحی کرده)، مایکل پیترز، و ژیل وان آش می‌باشد. این الگوریتم مبتنی بر طرح‌های درهم‌سازی قبلی PANAMA و RadioGatún است. PANAMA در سال ۱۹۹۸ توسط دیمِن و کریگ کلَپ طراحی شده‌است. RadioGatún، جانشین PANAMA، توسط پیترز، دیمِن و وان آش طراحی شد و در کارگاه NIST Hash در سال ۲۰۰۶ ارائه شد. کد منبع اجرای مرجع از طریق چشم پوشی CC0 به حوزه عمومی اختصاص داده شده است.
در سال ۲۰۰۶، NIST برای ایجاد یک استاندارد جدید درهم‌سازی، اس‌اچ‌ای۳، اقدام به سازماندهی رقابت تابع درهم‌سازی NIST کرد. اس‌اچ‌ای۳ قرار نیست که جایگزین اس‌اچ‌ای۲ شود، زیرا هیچ حمله قابل توجهی به اس‌اچ‌ای۲ نشان داده نشده‌است. به دلیل حملات موفقیت‌آمیز بر اس‌اچ‌ای۰، ام‌دی۵ واس‌اچ‌ای۱، NIST احساس نیاز به یک رمزنگاری درهم‌ساز جایگزین و متفاوت کرد، که SHA-3 نام گرفت.
پس از یک دوره تنظیم، پذیرش‌ها باید تا پایان سال ۲۰۰۸ ارسال می‌شدند. کچاک(Keccak) به عنوان یکی از ۵۱ نامزد پذیرفته شد. در ژانویه ۲۰۰۹، ۱۴ الگوریتم برای دور دوم انتخاب شد. کچاک به آخرین مرحله در دسامبر ۲۰۱۰ رسید.
در طول مسابقه، به شرکت کنندگان اجازه داده شد الگوریتم‌هایشان را «اصلاح» کنند تا مشکلاتی که کشف شده بود حل شوند. تغییراتی که در کچاک ایجاد شده‌است به این شرح است:
در تاریخ ۲ اکتبر ۲۰۱۲، کچاک به عنوان برنده مسابقه انتخاب شد.
در سال ۲۰۱۴، NIST پیش نویس FIPS 202 «استاندارد SHA-3: توابع هش مبتنی بر permutation و توابع خروجی قابل گسترش» را منتشر کرد. FIPS 202 در ۵ اوت ۲۰۱۵ تصویب شد.
در ۵ اوت ۲۰۱۵، NIST اعلام کرد که اس‌اچ‌ای۳ به یک استاندارد درهم‌سازی تبدیل شده‌است.
اس‌اچ‌ای۳ از ساخت اسفنجی استفاده می‌کند، که در آن داده‌ها «جذب» اسفنج می‌شوند، سپس نتیجهٔ آن‌ها به بیرون «فشرده» می‌شود. در مرحله جذب، بلوک‌های پیام XOR شده و به زیر مجموعه ای از حالت تبدیل می‌شوند، که بعداً با استفاده از یک تابع جایگشت formula_1 به صورت یک کل درمی‌آیند. در مرحله «فشردن»، بلوک‌های خروجی از همان زیر مجموعه حالت خوانده می‌شوند، و با استفاده از تابع تغییر حالت formula_1 تغییر می‌یابند. سایز بخشی از حالت که نوشته شده و خوانده شده‌است «نرخ» (مشخص شده با formula_3) نامیده می‌شود، و اندازه بخشی که توسط ورودی / خروجی دست نخورده می‌ماند، «ظرفیت» (مشخص شده با formula_4) نامیده می‌شود. ظرفیت تعیین‌کننده امنیت طرح است. حداکثر سطح امنیتی برابر نصف ظرفیت است.
با درنظر گرفتن یک رشته بیت ورودی formula_5 ، یک تابع پدینگ مانند formula_6 ، یک تابع جایگشت formula_1 که روی بلوک‌های بیتی با عرض formula_8 کار می‌کند، نرخ formula_3 و طول خروجی formula_10 ، ظرفیتی برابر با formula_11 و ساخت اسفنجی formula_12 را داریم، می‌دهد رشتهٔ بیتی formula_13 به طول formula_10، که به شرح زیر کار می‌کند:
این واقعیت که وضعیت داخلی "S" حاوی "c" بیت اضافی اطلاعات علاوه بر آنچه در خروجی "Z نوشته می‌شود است،" مانع از حملات طولانی مدت می‌شود که ام‌دی۵، اس‌اچ‌ای۱، اس‌اچ‌ای۲ و سایر درهم‌سازی‌های مبتنی بر ساخت و ساز مرکل-دامگارد مستعد آن هستند.
در اس‌اچ‌ای۳، حالت "S" شامل یک آرایه شامل کلمات "w" بیتی ("w=۶۴")، و درکل "b" = ۵ × ۵ × "w" = ۵ × ۵ × ۶۴ = ۱۶۰۰ بیت است. کچاک(Keccak) همچنین برای کلمه‌های توان دویی با اندازه‌های کوچکتر "w" و حتی با ۱ بیت (که درمجموع حالتی با ۲۵ بیت می‌سازد) هم تعریف شده‌است. اندازه‌های حالت کوچک می‌تواند برای آزمایش حملات تحلیل رمزنگاری مورد استفاده قرار گیرد، و اندازه‌های حالت متوسط (از ، با ۲۰۰ بیت، تا ، با ۸۰۰ بیت) در برنامه‌های کاربردی سبک استفاده می‌شود.
برای موارد اس‌اچ‌ای۳–۲۲۴، اس‌اچ‌ای۳–۲۵۶، اس‌اچ‌ای۳–۳۸۴، و اس‌اچ‌ای۳–۵۱۲، مقدار "r" از "d بیشتر است"، بنابراین در مرحله فشردن نیازی به جایگشت‌های بلوکی اضافی نیست. "d" بیت اول از وضعیت، همان درهم‌سازی مورد نظر ما می‌باشد. با این حال، SHAKE-۱۲۸ و SHAKE-۲۵۶ امکان خروجی با طول دلخواه را به ما می‌دهند، که در برنامه‌هایی مانند رمزگذاری با پرکردن نامتقارن بهینه مفید است.
برای اطمینان از اینکه پیام را می‌توان به بلوک‌های "r" بیتی مساوی تقسیم کرد، لایه‌گذاری لازم است. اس‌اچ‌ای۳ از الگوی ۱۱۰ در عملکرد لایه‌گذاری خود استفاده می‌کند: یک بیتِ ۱، به‌دنبال آن صفر یا بیشتر بیتِ ۰ (حداکثر تا) و یک بیتِ ۱ نهایی.
حداکثر بیت صفر زمانی رخ می‌دهد که آخرین بلوک پیام بیت طول داشته باشد. دراین‌حالت بلوک دیگری پس از بیتِ ۱ اولیه اضافه می‌شود که حاوی بیتِ صفر قبل از بیتِ ۱ نهایی است.
دو بیتِ ۱، حتی اگر طول پیام در حال حاضر بر "r" بخش‌پذیر باشد، اضافه می‌شوند. در این حالت، یک بلوک دیگر به پیام اضافه می‌شود که حاوی یک بیتِ ۱ است، به دنبال آن یک بلوک تایی بیتِ صفر و یک بیتِ ۱ دیگر می‌باشد. این کار لازم است برای اینکه که یک پیام که طولش بر "r" بخش پذیر است و به چیزی که شبیه لایه‌گذاری به نظر می‌رسد ختم می‌شود، همان درهم‌سازی را تولید نکند که یک پیام دیگری که آن بیت‌ها را ندارد تولید می‌کند.
بیتِ ۱ اولیه برای این نیاز است که پیام‌هایی که فقط چند بیتِ ۰ اضافی آخرشان متمایز است، یک درهم‌سازی مشابه ایجاد نکنند.
موقعیت بیتِ ۱ نهایی نشان می‌دهد که از کدام نرخ "r" استفاده شده‌است (لایه‌گذاری چند نرخی)، که برای اثبات امنیت لازم است تا برای انواع مختلف درهم‌سازی کار کند. بدون آن، درهم‌سازی‌های مختلف از یک پیام کوتاه یکسان می‌تواند دارای برش یکسانی شود.
تبدیل بلوکی "f"، که Keccak-f [1600] برای اس‌اچ‌ای۳ است، جایگشتی است که از عملیات XOR، AND و NOT استفاده می‌کند و برای پیاده‌سازی آسان در هردوی نرم‌افزار و سخت‌افزار طراحی شده‌است.
این تبدیل برای هر طول کلمه‌ای که توانی از دو باشد، تعریف شده‌است. نسخه اصلی اس‌اچ‌ای۳، از کلمات ۶۴ بیتی، استفاده می‌کند.
آرایهٔ حالت می‌تواند به صورت یک آرایهٔ بیتی در نظر گرفته شود. فرض کنید برابر بیتِ ام از ورودی باشد، که در یک مدل Little Endian از قرارداد شمارش بیتی و اندیس گذاری ردیف-اول فرض شده‌است، یعنی شماره ردیف، شماره ستون و شماره بیت را مشخص می‌کند.
اندیس گذاری حسابی برای دو بعد اول، در پیمانه ۵ و برای بعد سوم در پیمانه w انجام می‌شود.
تابع جایگشت بلوکیِ پایه، متشکل از دورِ پنج مرحله‌ای است:سرعت درهم‌سازی پیام‌های طولانی توسط اس‌اچ‌ای۳، بسیار تحت تأثیر محاسبهٔ "f" = Keccak-f [۱۶۰۰] و XOR کردن "S" با مقدار گسترش‌یافتهٔ "P" ، که یک عملیات روی "b" = ۱۶۰۰ بیت است، می‌باشد. با این حال، از آنجایی که c بیت آخر مقدار گسترش‌یافتهٔ "P " درهرصورت صفر هستند، و XOR با ۰ یک NOP است، کافی است عملیات XOR را فقط برای r بیت انجام دهیم"(r" = ۱۶۰۰–۲ × ۲۲۴ = ۱۱۵۲ بیت برای اس‌اچ‌ای۳–۲۲۴، ۱۰۸۸ بیت برای اس‌اچ‌ای۳–۲۵۶، ۸۳۲ بیت برای اس‌اچ‌ای۳–۳۸۴ و ۵۷۶ بیت برای اس‌اچ‌ای۳–۵۱۲). هرچه "r" پایین‌تر باشد (و برعکس، هرچه "c" = "b" - "r" = 1600 - "r" بالاتر باشد)، درهم‌سازی ناکارآمدتر و پرهزینه‌تر اما ایمن تر می‌شود، زیرا تعداد بیت کمتری از پیام می‌تواند با حالت XOR شود (یک عملیات سریع) قبل از هر بار استفاده از "f" که از نظر محاسباتی پرهزینه است. نویسندگان سرعت‌های زیر را برای اجرای پیاده‌سازی‌های نرم‌افزاری Keccak-f [1600] به اضافه XOR کردن ۱۰۲۴بیت گزارش می‌دهند، که تقریباً با اس‌اچ‌ای۳–۲۵۶ مطابقت دارد:
برنشتاین به‌طور دقیق برای اس‌اچ‌ای۳–۲۵۶ روی x۸۶–۶۴، عدد ۱۱٫۷–۱۲٫۲۵ cpb را بسته به CPU اندازه‌گیری کرده‌است. اس‌اچ‌ای۳ به دلیل کند بودن در معماری‌های مجموعه دستورالعمل (CPU) که دستورالعمل خاصی برای محاسبه سریعتر توابع Keccak ندارند، مورد انتقاد قرار گرفته‌است - اس‌اچ‌ای۲–۵۱۲ بیش از دو برابر سریعتر از اس‌اچ‌ای۳، و اس‌اچ‌ای۱ بیش از سه برابر سریعتر از آن روی یک پردازنده Intel Skylake با فرکانس کلاک ۳٫۲ گیگاهرتز اجرا می‌شود. نویسندگان با پیشنهاد استفاده از SHAKE۱۲۸ و SHAKE۲۵۶ به جای اس‌اچ‌ای۳–۲۵۶ و اس‌اچ‌ای۳–۵۱۲، به قیمت کاهش یافتن نصف مقاومت‌پیش‌نمایش (اما با همان مقاومت برخورد)، به این انتقاد واکنش نشان داده‌اند. با این کار، عملکرد برابر می‌شود با اس‌اچ‌ای۲–۲۵۶ و اس‌اچ‌ای۲–۵۱۲.
با این حال، از نظر پیاده‌سازی سخت‌افزاری، اس‌اچ‌ای۳ به طرز ویژه‌ای سریعتر از سایر فینالیست‌ها است، و همچنین سریع تر از اس‌اچ‌ای۲ و اس‌اچ‌ای۱.
معماری‌های ARMv8 و IBM s۳۹۰x در حال حاضر (از سال ۲۰۱۸) شامل دستورالعمل‌های ویژه ای هستند که الگوریتم‌های Keccak را قادر می‌سازند سریعتر اجرا شوند.
استاندارد NIST نمونه‌های زیر را برای پیام "M" و طول خروجی "d نشان می‌دهد":
با تعاریف زیر
توجه داشته باشید که پسوندهای اضافه شده به صورت رشته‌های بیتی نوشته می‌شوند، نه رقم‌های مبنای ۱۶.
نمونه‌های اس‌اچ‌ای۳ جایگزین قطره‌ای برای اس‌اچ‌ای۲ هستند، با همان ادعاهای امنیتی یکسان. نمونه‌های SHAKE به اصطلاح توابع خروجی قابل گسترش XOF گفته می‌شوند. به عنوان مثال، SHAKE128(M، ۲۵۶) می‌تواند به عنوان یک تابع درهم‌سازی با طول ۲۵۶ بیت و امنیت کلی ۱۲۸بیتی استفاده شود.
توجه داشته باشید که همه نمونه‌ها، تعدادی بیت به پیام اضافه می‌کنند، که سمت راست‌ترین آنها نشان‌دهندهٔ پسوند جدایی دامنه است. هدف از این کار این است که اطمینان حاصل شود نمی‌توان پیام‌هایی با همان خروجی درهم‌سازی‌شده را برای کاربردهای مختلف برنامه درهم‌سازی Keccak ساخت. پسوندهای جدایی دامنه زیر موجودند:
RawSHAKE پایه ای است برای رمزگذاری ساکورا جهت درهم‌سازی درختی، که هنوز استاندارد نشده‌است. با این حال، پسوند SHAKE با دقت انتخاب شده‌است تا این‌که سازگار با نسخه‌های بعدی ساکورا باشد. قبل از اعمال RawSHAKE، Sakura بیت ۰ را برای یک هاپ زنجیره‌ای یا بیت ۱ را برای یک پیام، سپس ۱۰۰ را برای یک گره غیرنهایی (داخلی) یا ۱ را برای یک گره نهایی، اضافه می‌کند. درهم‌سازی متوالی مربوط به درخت هاپ با یک گره پیام است، بدین معنی که ۱۱ قبل از اعمال RawSHAKE به پیام اضافه می‌شود؛ بنابراین، SHAKE XOFs مقدار ۱۱۱۱ را به پیام اضافه می‌کند، یعنی ۱ برای پیام، ۱ برای گره نهایی و ۱۱ برای پسوند جدایی دامنه RawSHAKE.
از آنجا که لایه‌گذاری ۱۰۱ همیشه حداقل دو بیت را اضافه می‌کند، در کتابخانه‌های مرتب با بایت همیشه شش بیت صفر استفاده نشده وجود دارد؛ بنابراین، این بیت‌های اضافی هرگز پیام لایه‌گذاری را طولانی‌تر نمی‌کنند.
در دسامبر سال ۲۰۱۶، NIST یک سند جدید با نام NIST SP.800-185 منتشر کرد که عملکردهای اضافی مشتق شده اس‌اچ‌ای۳ را شرح می‌دهد:در سال ۲۰۱۶، همان تیمی که توابع اس‌اچ‌ای۳ و الگوریتم Keccak را ایجاد کرده بودند، یک جایگزین سریعتر با تعداد دورهای کاهش‌یافته (کاهش‌یافته به ۱۲ و ۱۴دور، از ۲۴ دور در اس‌اچ‌ای۳) که به دلیل استفاده از درهم‌سازی درختی، می‌تواند از قابلیت اجرای موازی بهره بگیرد، ارائه کردند: KangarooTwelve و MarsupilamiFourteen.
این توابع با ParallelHash، تابع درهم‌سازی استاندارشده FIPS باقابلیت موازی سازی و مبتنی بر Keccak، از نظر موازی‌سازی متفاوت است، زیرا در پیام‌های با اندازه کوچک سریعتر از ParallelHash هستند.
تعداد دور کاهش یافته با تلاش بسیار زیاد تحلیلی رمزنگاری متمرکز بر Keccak که نتوانست در حمله عملیاتی به هیچ الگوریتم Keccak با تعداد دور نزدیک به دوازده ایجاد کند، تصدیق می‌شود. این الگوریتم‌های با سرعت بالاتر جزئی از اس‌اچ‌ای۳ نیستند (زیرا آنها بعداً توسعه یافته‌اند)، و بنابراین سازگار با FIPS نیستند. اما آنها به همان اندازه توابع اس‌اچ‌ای۳ ایمن هستند، زیرا آنها از همان جایگشت Keccak استفاده می‌کنند و هیچ حمله ای به Keccak ۱۲ دوری نشده‌است.
KangarooTwelve یک نسخه با تعداد دور کاهش یافته (از ۲۴ به ۱۲ دور) با عملکرد بالاتر از Keccak است که ادعا می‌کند ۱۲۸ بیت امنیت دارد در حالی که عملکردی برابر با ۰٫۵۵ چرخه در هر بایت دارد. این الگوریتم یک پیش نویس IETF RFC است.
MarsupilamiFourteen، نسخهٔ اندکی تغییریافتهٔ KangarooTwelve، از ۱۴ دور جایگشت Keccak استفاده می‌کند و ادعا می‌کند ۲۵۶ بیت امنیت دارد. توجه داشته باشید که امنیت ۲۵۶ بیتی در عمل مفیدتر از امنیت ۱۲۸ بیتی نیست، اما ممکن است طبق برخی استانداردها مورد نیاز باشد. درحال حاضر ۱۲۸ بیت برای پیروزشدن بر حملات brute-force بر روی سخت‌افزار فعلی کافی است، بنابراین داشتن امنیت ۲۵۶ بیتی ارزش عملی نمی‌افزاید، مگر اینکه کاربر نگران پیشرفتهای چشمگیر سرعت کامپیوترهای "کلاسیک" باشد. برای مقاومت در برابر رایانه‌های "کوانتومی"، به زیر مراجعه کنید.
KangarooTwelve و MarsupilamiFourteen، مشابه SHAKE، توابع با قابلیت گسنرش خروجی هستند، بنابراین آنها برای یک پیام مشترک با طول خروجی متفاوت، خروجی نزدیک به هم تولید می‌کنند (خروجی طولانی‌تر تعمیم‌یافتهٔ خروجی کوتاه‌تر می‌باشد). توابع درهم‌ساز مانند اس‌اچ‌ای۳ یا ParallelHash (به جز انواع مختلف XOF) چنین خاصیتی از خود نشان نمی‌دهند.
در سال ۲۰۱۶، تیم Keccak یک ساخت و ساز مختلف به نام ساخت و ساز فارفاله، و Kravatte، یک نمونه از فارفاله که از جایگشت Keccak-p استفاده می‌کند، منتشر کردند، به‌علاوهٔ دو الگوریتم رمزگذاری معتبر
Kravatte-SANE و Kravatte-SANSE
یک نتیجه کلی (الگوریتم گرور) وجود دارد که کامپیوترهای کوانتومی می‌توانند یک حمله پیش‌نمایش ساختار یافته را در formula_18 انجام دهند، در حالی که یک حمله brute-force کلاسیک به 2 نیاز دارد. یک حمله ساختار یافته پیش‌نمایش نشانگر یک حمله پیش‌نمایش دوم و در نتیجه یک حمله تصادم است. یک کامپیوتر کوانتومی همچنین می‌تواند یک حمله روز تولد را در formula_19 (اگرچه این مورد اختلاف است) انجام دهد، درنتیجه مقاومت در برابر تصادم را ازبین ببرد. با توجه به این که حداکثر قدرت می‌تواند formula_20 باشد، کران‌های بالای زیر بر روی امنیت کوانتومی اس‌اچ‌ای۳ حاصل می‌شوند:
نشان داده شده‌است که ساخت و ساز مرکل-دامگورد، که در اس‌اچ‌ای۲ از آن استفاده می‌شود، در حال فروپاشی است و به تبع آن، مقاوم در برابر تصادم کوانتومی است، اما برای ساخت اسفنج مورد استفاده در اس‌اچ‌ای۳، نویسندگان فقط برای این مورد که تابع بلوکی "f" باهزینه‌کم وارون‌پذیر نیست اثبات کرده‌اند. Keccak-f [۱۶۰۰]، ولی، باهزینه‌کم وارون‌پذیر است و بنابراین اثبات آنها کاربردی نیست.
در فوریه ۲۰۱۳در کنفرانس RSA، و سپس در اوت ۲۰۱۳ در CHES، NIST اعلام کرد که مقادیر مختلفی را برای ظرفیت، که پارامتر امنیتی است، برای استاندارد اس‌اچ‌ای۳، در مقایسه با ارسال اولیه، انتخاب می‌کنند. این تغییرات باعث سردرگمی شد.
مسابقات توابع درهم‌سازی، خواستار توابع درهم‌ساز شد که حداقل به همان اندازه نمونه‌های اس‌اچ‌ای۲ امنیت داشته باشند. به این معنی که یک خروجی d بیتی باید مقاومت d/۲ بیتی درمقابل حملات تصادم و مقاومت d بیتی در برابر حملات پیش‌نمایش داشته باشد، مقدار حداکثری که برای d بیت از خروجی دست یافتنی است. اثبات امنیتی Keccak امکان تنظیم سطح امنیتی را مبتنی بر «ظرفیت» "c" می‌دهد، که مقاومت "c"/۲ بیتی در برابر هردو حمله تصادم و حمله پیش‌نمایش فراهم می‌کند. جهت برآورده ساختن قوانین اصلی رقابت، نویسندگان کچاک "c" = "۲d را پیشنهاد کردند". تغییر اعلام شده برای پذیرش همان امنیت "d"/۲ بیتی برای همه اشکال حمله و استانداردسازی "c" = "d بود". این می‌توانست با فراهم کردن امکان درهم‌سازی d بیت اضافه‌تر از ورودی درهربار تکرار چرخه، سرعت Keccak را بالا ببرد؛ ولی، توابع درهم‌سازی دیگر نمی‌توانستند جایگزین‌های قطره‌ای با همان مقاومت پیش‌نمایشی اس‌اچ‌ای۲ باشند. با این کار مقاومت پیش‌نمایشی به نصف کاهش می‌یافت، باعث می‌شد در برابر پیشرفت‌های محاسبات کوانتومی آسیب‌پذیر شود، که به‌طور مؤثری آن را دوباره به نصف کاهش می‌داد.
در سپتامبر ۲۰۱۳، دنیل جی برنشتاین در لیست پستی انجمن درهم‌سازی NIST پیشنهاد کرد که امنیت را با رساندن ظرفیت به ۵۷۶ بیت، که در ابتدا به عنوان پیش فرض کچاک پیشنهاد شده بود، و علاوه بر این در مشخصات فنی اس‌اچ‌ای۳ گنجانده نشده بود، تقویت کنند. این کار می‌توانست حداقل یک اس‌اچ‌ای۳–۲۲۴ و اس‌اچ‌ای۳–۲۵۶ با همان مقاومت پیش‌نمایشی به اندازه پیشینیان اس‌اچ‌ای۲ خود فراهم کند، اما اس‌اچ‌ای۳–۳۸۴ و اس‌اچ‌ای۳–۵۱۲ مقاومت پیش‌نمایشی بسیار کمتری نسبت به پیشینیان اس‌اچ‌ای۲ خود پیدا می‌کردند. در اواخر ماه سپتامبر، تیم کچاک با بیان این‌که آن‌ها قبلاً امنیت ۱۲۸ بیتی با تعیین را به عنوان یک گزینه در پروپوزال اس‌اچ‌ای۳ خود پیشنهاد داده‌بودند، پاسخ داد. اگرچه از نظر آنها کاهش ظرفیت قابل توجیه بود، با توجه به پاسخ منفی، آنها پیشنهاد کردند ظرفیت به "c" = ۵۱۲ بیت برای همه نمونه‌ها افزایش یابد. این مقدار ظرفیت به همان اندازهٔ هر استاندارد قبلی با حداکثر سطح امنیتی ۲۵۶ بیتی بود، و در عین حال بازده مناسبی هم داشت، اما نه به اندازهٔ مقاومت پیش‌نمایشی 384- / 512 بیتی ارائه شده توسط اس‌اچ‌ای۲–۳۸۴ و اس‌اچ‌ای۲–۵۱۲. نویسندگان سعی کردند با این ادعا که "ادعاکردن یا اعتماد بر سطح قدرت امنیتی بالای ۲۵۶ بیت بی معنی است" خود را توجیه کنند.
در اوایل اکتبر ۲۰۱۳، بروس اشنیر با انتقاد از تصمیم NIST مبنی بر تأثیرات مضر آن بر پذیرش الگوریتم، گفت:
پل کرولی، رمزنگار و توسعه دهنده ارشد در یک شرکت مستقل توسعه نرم‌افزار، با گفتن این‌که کچاک قرار است قابل تنظیم باشد و هیچ دلیلی بر وجود سطوح امنیتی مختلف درون یک اصل اولیه وجود ندارد، حمایت خود از این تصمیم را بیان کرد. وی همچنین اضافه کرد:
برخی گمان‌ها نیز مبنی بر ایجاد تغییرات داخلی در کچاک وجود داشت. تیم کچاک این موضوع را روشن کرد و اظهار داشت که پیشنهاد NIST برای اس‌اچ‌ای۳ زیرمجموعه ای از خانواده کچاک است که برای آن بشود با استفاده از کد مرجع ارسال شده به مسابقه، بردارهای تست تولید کرد و این پیشنهاد نتیجه یک سری بحث‌ها بین آنها و تیم درهم‌سازی NIST بود. همچنین، بروس اشنایر اظهارات قبلی خود را اصلاح کرد و گفت:
در پاسخ به این بحث و گفتگو، در نوامبر ۲۰۱۳ جان کلسی از NIST پیشنهاد بازگشت به طرح اصلی برای همه نمونه‌های جایگزینی قطره ای اس‌اچ‌ای۲ را داد. این بازبینی در پیش نویس آوریل ۲۰۱۴ تأیید شد. این پیشنهاد در استاندارد انتشار نهایی در اوت ۲۰۱۵ پیاده‌سازی شد.
فرم‌های با ظرفیت کاهش‌یافته با عنوان SHAKE۱۲۸ و SHAKE۲۵۶ منتشر شدند، که عدد آن‌ها سطح امنیتی را نشان می‌دهد و تعداد بیت‌های خروجی متغیر است، اما باید دو برابر مقاومت موردنیاز در برابر تصادم باشد.
مقادیر درهم‌سازی زیر از NIST.gov است: تغییر یک بیت واحد باعث می‌شود که هر بیت در خروجی با احتمال ۵۰٪ تغییر کند که یک اثر بهمنی را نشان می‌دهد:
در جدول زیر، "حالت داخلی" به معنی تعداد بیت‌هایی است که به بلوک بعدی منتقل می‌شوند.
در زیر لیستی از کتابخانه‌های رمزنگاری که از اس‌اچ‌ای۳ پشتیبانی می‌کنند آمده‌است: