الگوریتم SHA-256 چیست؟

زمان مطالعه: 6 دقیقه

اگر شما هم با پروتکل‌های امنیتی در صفحات وب و یا الگوریتم‌های استخراج ارزهای دیجیتال کمی آشنا باشید، حتما نام الگوریتم SHA-256 را شنیده‌اید. برای آشنایی با این الگوریتم کاربردی، ابتدا بهتر است مفهوم الگوریتم هشینگ را توضیح دهیم تا در نهایت به SHA-256 برسیم.

هش (یا الگوریتم هشینگ) چیست؟

توابع هش یک نوع رمزنگاری هستند که با انجام مجموعه‌ای از عملیات‌ پیچیده ریاضی، داده‌های دیجیتالی را به‌صورت یک‌طرفه تغییر می‌دهند و آن‌ها را به یک عبارت خروجی با نام هش و با یک اندازه ثابت، تبدیل می‌کنند. منظور از یک‌طرفه بودن این توابع، این است که با داشتن هش، نمی‌توان داده اولیه را محاسبه کرد، اما با مقایسه‌ی هش خروجی با هشی که با توجه به داده‌های درست انتظار آن را داشتیم، می‌توانیم تایید کنیم که یک داده صحیح است.

این الگوریتم در حفظ و تایید اطلاعات مهم و امنیتی بسیار کاربردی است. به‌عنوان مثال فرض کنید برای نگهداری کلمه‌عبور کاربران در یک سیستم، به‌نحوی که هکرها، حتی درصورت هک پایگاه داده، نتوانند به آن دست پیدا کنند چه می‌توان کرد؟ برای این کار می‌توان کلمه‌عبور هر کاربر را به هش تبدیل کرد و هش آن را ذخیره کرد. درنهایت هکرها می‌توانند به هش کلمه‌عبور کاربران دست پیدا کنند، اما هرگز نمی‌توانند خود کلمه‌عبور را محاسبه کنند. اما کاربران هربار هنگام ورود به سیستم کلمه‌عبور را وارد می‌کنند و سیستم با محاسبه هش آن و تایید مطابقت با حالت صحیح، اجازه ورود آن‌ها را صادر خواهد کرد.

الگوریتم SHA-256

آشنایی با الگوریتم SHA-256

الگوریتم های هشینگ متنوعی وجود دارند که هرکدام برای کاربرد خاصی استفاده می‌شوند. نوعی از این الگوریتم‌‌ها، الگوریتم SHA (مخفف Secure Hashing Algorithm) یا الگوریتم هشینگ امن نام دارد که کاربرد آن، از نامش مشخص است.

از سال 2001، آژانس امنیت ملی (NSA) الگوریتم SHA-256 را، که خود یکی از شاخه‌های SHA-2 است، به‌عنوان جایگزین نسخه قبلی این الگوریتم، یعنی SHA-1، ارائه کرد. دلیل این جایگزینی این بود که سرویس‌های مبتنی بر وبی که برای تایید فایل‌های certificate خود (فایل‌هایی حاوی عناصر رمزنگاری‌شده که برای ارتباط وبسایت‌ها و سرویس‌های وب موردنیاز هستند)، به‌عنوان امضاهای دیجیتالی از SHA-1 استفاده می‌کردند، دچار نارضایتی شدند و شکاف‌های امنیتی را مشاهده نمودند.

لذا الگوریتم SHA-256 تغییرات مهمی را به وجود آورده و این مشکلات را حل نمود. این الگوریتم، داده‌های اولیه با هر اندازه دلخواه را، به یک هش یا کلید 256 بیتی تبدیل می‌کند، که کاملا غیرقابل تفسیر می‌باشد.

تغییر از SHA-1 به SHA-2

صنعت certificate SSL (پروتکل امنیتی و رمزنگاری صفحات وب)، در سال 2016 تحول پیدا کرده و SHA-2 را الگوریتم استاندارد خود قرار داد. بسیاری از نرم‌افزارها و certificateها مجبور به به‌روزرسانی بودند و تا 31 دسامبر 2015 مهلت داشتند که به استاندارد جدید منتقل شوند. در تاریخ مذکور شبکه‌های اینترنتی تماما به استاندارد جدید روی آوردند و اکثر certificateهایی که از Sha-1 استفاده می‌کردند، طی دو سال بعد، خاموش شدند. در سال 2017، تنها 500،000 certificate همچنان از Sha-1 استفاده می‌کردند.

 الگوریتم SHA-3

معمولا هیچ الگوریتم هشی نمی‌تواند برای بیش از یک دهه، بسیار امن تلقی گردد؛ زیرا با پیشرفت تکنولوژی و کاهش هزینه انجام محاسبات پیچیده کامپیوتری و حملات سایبری، هر الگوریتمی به‌مرور امنیت خود را از دست می‌دهد. به‌روزرسانی‌های موقتی که برای بروز مشکلات یک الگوریتم انجام می‌شوند، امنیت آن را تنها برای یک مدت کوتاه تضمین می‌کنند؛ اما از جایی به بعد کل الگوریتم هشینگ نیاز به جایگزینی دارد.

الگوریتم SHA-3، یعنی جایگزین SHA-2 نیز آماده شده و در زمان مشخص، اگر همچنان الگوریتم جدیدی جای هشینگ را نگرفته باشد، جایگزین آن خواهد شد. تا آن زمان فرا برسد، متخصصان این الگویتم جدید را تست و بررسی می‌کنند تا خطاهای احتمالی آن کشف و رفع گردند.

الگوریتم SHA-256

مشخصات فنی SHA-256

در بهار 2002، نسخه اولیه SHA-256 توسط NSA خلق شد و چند ماه بعد انتشار یک پروتکل امنیتی جدید، در ژورنال FIPS PUB 180-2، توسط دانشگاه ملی مترولوجیکال اعلام گردید. نسخه دوم این الگوریتم، در زمستان 2014 جایگزین آن شد و همچنین انتشار دومین نسل پتنت SHA، با لایسنس Royalty-free توسط NSA، باعث گسترش هرچه بیشتر این تکنولوژی در عموم شد.

این پروتکل، داده‌ها را به قطعات 64 بایتی (512 بیت) تقسیم کرده و با رمزنگاری میکسینگ، درنهایت یک هش 256 بیتی تولید می‌نماید؛ یعنی یک خروجی 16 کلمه‌ای از داده‌های اولیه ایجاد می‌گردد. اندازه هر بلاک در این الگوریتم 64 بایت، حداکثر طول پیام 33 بایت، اطلاعات خلاصه‌سازی پیام 32 بایت، اندازه کلمات 4 بایت و پارامتر داخلی طول 32 بایت است و در آن یک چرخه 64 بار تکرار می‌شود. لازم به ‌ذکر است که با این الگوریتم تقریبا می‌توان 140 مگابایت را در هر ثانیه پردازش کرد و متد ساختاری آن Merkle-Damgard می‌باشد.

الگوریتم SHA-256

در پروسه تایید امضاهای دیجیتال با SHA-256 دو نوع کلید عمومی و خصوصی وجود دارند (به همین دلیل رمزنگاری آن را غیرمتقارن می‌نامیم)، که کلید عمومی جهت رمزگذاری و کلید خصوصی جهت رمزگشایی به‌کار می‌رود. لذا تنها کسی که کلید خصوصی را در دست دارد می‌تواند محتوا را رمزگشایی کرده و مشاهده نماید.

چه کوین هایی روی الگوریتم SHA-256 قابل استخراج هستند؟

با شروع فعالیت رمزارزها، که با خلق بیت کوین به وقوع پیوست، الگوریتم SHA-256 به‌عنوان یک نوع پروتکل ماینینگ نیز به‌کار گرفته شد. مهم‌ترین رمزارزی که از الگوریتم SHA 256 استفاده می‌کند، بدون شک همچنان بیت کوین است. این الگوریتم به‌عنوان الگوریتم اثبات کار (PoW) برای استخراج و تایید تراکنش‌های بیت کوین استفاده می‌شود و آدرس‌های بیت کوین، جهت ایجاد حریم خصوصی و امنیت برای کاربر، با الگوریتم SHA256 ایجاد می‌گردند.

تعدادی از سایر ارزهای دیجیتالی نیز وجود دارند که به دنباله‌روی از بیت کوین، الگوریتم SHA-256 را برای استخراج و تایید تراکنش‌های خود به‌کار گفتند.

برخی از این ارزهای دیجیتال عبارتند از: بیت کوین کش (BCH)، بیت کوین اس وی (BSV)، لایت کوین کش (LCC)، دیجی بایت (DGB) پیر کوین (PPC)، اونوبتانیوم (UNO)، کرون (CRW)، مای رید (XMY)، بیت کانکت (BCC)، یونیورسال کارنسی (UNIT)، زتا کوین (ZET)، مازا (MZC)، داتشی ای مارک (DEM)، سوپر بیت کوین (SBTC)، کبرابایتز (COBRA)، یونایتند بیت کوین (UBTC)، جول کوین (XJO)، لانا کوین (LANA)، ترا کوین (TRC)، بیت کوین کور (BTCC)، بیت کوین اتم (BCA) و آرورا کوین (AUR).
همانطور که می‌دانید ماینرهای ASIC، تنها برای استخراج با یک الگوریتم خاص ساخته می‌شوند و به همین دلیل است که بعضا نسبت به ماینرهای GPU برتری دارند. ماینرهایی که ASIC آن‌ها قابلیت استخراج با الگوریتم SHA-256 را داشته باشد، می‌توانند کوین‌های ذکر شده را استخراج نمایند.
ممکن است به این مطالب نیز علاقه‌مند باشید
0 Comments
Inline Feedbacks
View all comments