قبل از اینکه به تعریف الگوریتم SHA-256، بپردازیم بهتر است با الگوریتم های استخراج ارز دیجیتال آشنا شوید. در ابتدا به تعریف الگوریتم کاربردی هشینگ می پردازیم تا در ادامه بتوانید الگوریتم SHA-256 را متوجه شوید. توابع هش نوعی رمزنگاری هستند که با انجام یک سری عملیات پیچیده ریاضی، داده های عددی را به صورت یک طرفه تغییر داده و به یک عبارت خروجی به نام هش با اندازه ثابت تبدیل می کند. ماهیت یک طرفه این توابع به این معنی است که با هش نمیتوانیم دادههای اصلی را محاسبه کنیم اما با مقایسه هش خروجی با هش مورد انتظار در برابر دادههای صحیح، میتوانیم صحت یک داده را تأیید کنیم.
با استفاده از این الگوریتم می توان امنیت داده ها را کنترل کرد. به عنوان مثال تصور کنید چه کاری می توان انجام داد تا رمزارزهای عبور کاربر را در یک سیستم نگه داریم تا هکرها نتوانند به آنها دسترسی داشته باشند، حتی اگر پایگاه داده هک شده باشد؟ می توانید این کار را با تبدیل رمز عبور هر کاربر به هش و ذخیره آن انجام دهید. هکرها احتمالاً می توانند به رمزهای عبور کاربر دسترسی داشته باشند اما هرگز نمی توانند رمز عبور را خودشان محاسبه کنند. با این حال، کاربران در هر بار ورود رمز عبور را وارد می کنند و سیستم با محاسبه هش آن و بررسی وضعیت صحیح به آنها اجازه می دهد وارد سیستم شوند.
الگوریتم SHA-256 چیست؟
الگوریتم های هشینگ متفاوتی وجود دارند که هر یک کاربرد خاصی دارد. نوعی از الگوریتم SHA-256، شاخه ای از الگوریتم های SHA-2 است. از این نوع الگوریتم می توان برای جایگزینی نسخه قبلی این الگوریتم یعنی SHA-1 استفاده کرد. دلیل این جایگزینی این بود که سرویسهای وب که از SHA-1 به عنوان امضای دیجیتال برای احراز هویت فایلهای گواهی خود استفاده میکردند (فایلهای حاوی عناصر رمزگذاریشده مورد نیاز برای پیوند دادن وبسایتها و سرویسهای وب) ناراضی بودند و آسیبپذیریهای امنیتی را مشاهده کردند. بنابراین الگوریتم SHA-256 تغییرات مهمی را ایجاد کرد و این مشکلات را حل کرد. این الگوریتم داده های اولیه را با هر اندازه ای به یک هش یا کلید 256 بیتی تبدیل می کند که غیر قابل تفسیر است.
تغییر از SHA-1 به SHA-2
صنعت certificate SSL در سال 2016 تغییرات اساسی ایجاد کرده و الگوریتم خود را از SHA-2 به یک الگوریتم استاندارد تبدیل کرد. بسیاری از نرم افزارها مجبور به تغییرات و بروزرسانی های دیگری شدند و تا 31 دسامبر 2015 این فرصت را داشتند تا به استاندارد جدید انتقال پیدا کنند. در آن تاریخ، شبکههای اینترنتی کاملاً به استاندارد جدید تغییر یافته بودند و اکثر گواهیهای استفاده از SHA-1 در عرض دو سال خاموش شدند. در سال 2017، تنها 500,000 گواهی به استفاده از SHA-1 ادامه دادند.
الگوریتم SHA-3 چیست؟
معمولاً هیچ الگوریتم هش را نمی توان برای بیش از یک دهه بسیار امن در نظر گرفت زیرا با پیشرفت تکنولوژی و کاهش هزینه انجام محاسبات پیچیده کامپیوتری و حملات سایبری، هر الگوریتم به تدریج امنیت خود را از دست می دهد. به روزرسانی های موقت برای رفع مشکلات یک الگوریتم فقط آن را برای مدت کوتاهی ایمن نگه می دارد اما از این به بعد، کل الگوریتم هش باید جایگزین شود. الگوریتم SHA-3 که جایگزین SHA-2 می شود نیز آماده شده است و اگر الگوریتم جدیدی هنوز جایگزین هش نشود، در مقطعی جایگزین خواهد شد. تا آن زمان، کارشناسان الگوریتم جدید را برای تشخیص هرگونه خطا آزمایش خواهند کرد.
مشخصات الگوریتم SHA-256
در بهار سال 2002، نسخه اولیه SHA-256 توسط NSA ایجاد شد و چند ماه بعد انتشار یک پروتکل امنیتی جدید، در مجله FIPS PUB 180-2، توسط دانشگاه ملی مترولوجیکال اعلام شد. نسخه دوم این الگوریتم در زمستان 2014 جایگزین شد و انتشار نسل دوم پتنت SHA با مجوز بدون حق امتیاز توسط NSA، این فناوری را به عموم مردم گسترش داد. این پروتکل داده ها را به بیت های 64 بایتی (512 بیتی) تقسیم می کند و با رمزگذاری مختلط، در نهایت یک هش 256 بیتی ایجاد می کند. یعنی یک خروجی 16 کلمه ای از داده های خام تولید می شود.
اندازه هر بلاک در این الگوریتم 64 بایت، حداکثر طول پیام 33 بایت، اطلاعات خلاصه پیام 32 بایت، اندازه کلمه 4 بایت و پارامتر داخلی 32 بایت است و یک چرخه 64 بار تکرار می شود. لازم به ذکر است که با این الگوریتم حدود 140 مگابایت در ثانیه قابل پردازش است و روش ساختاری آن Merkle-Damgard است. در فرآیند احراز هویت امضای دیجیتال با SHA-256، دو نوع کلید عمومی و کلید خصوصی وجود دارد (به همین دلیل است که ما آن را رمزگذاری غیرمتقارن می نامیم)، کلید عمومی برای رمزگذاری و کلید خصوصی برای رمزگشایی استفاده می شود. بنابراین، تنها شخصی که کلید خصوصی را در دست دارد می تواند محتوا را رمزگشایی و مشاهده کند.
کدام کوین ها با الگوریتم SHA-256 قابل استخراج است؟
با ظهور ارزهای دیجیتال که با ایجاد بیت کوین آغاز شد، الگوریتم SHA-256 نیز به عنوان یک نوع پروتکل استخراج مورد استفاده قرار گرفت. شاید مهمترین ارز دیجیتالی که از الگوریتم SHA-256 استفاده می کند، بیت کوین باشد. این الگوریتم به عنوان الگوریتم اثبات کار (PoW) برای استخراج و تأیید تراکنش های بیت کوین استفاده می شود و آدرس های بیت کوین با الگوریتم SHA-256 برای ایجاد حریم خصوصی و امنیت کاربر ایجاد شده است. البته ارزهای دیجیتال دیگری نیز وجود دارد که با پیروی از بیت کوین، الگوریتم SHA-256 برای استخراج و تایید تراکنش های آن مورد استفاده قرار می گیرد. از جمله ارزهای دیجیتال می توان به ارزهای دیجیتال زیر اشاره کرد:
• بیت کوین اس وی(BSV)
• لایت کوین کش(LCC)
• پیر کوین(PPC)
• کرون(CRW)
• بیت کانکت(BCC)
• یونیورسال کارنسی(UNIT)
• زتاکوین(ZET)
• مازا(MZC)
• جول کوین(XJO)
• لاناکوین(LANA)
• بیت کوین اتم(BCA)
بنابراین ماینرهای ای سیک، تنها برای استخراج با یک الگوریتم خاص مورد استفاده قرار می گیرند و به همین خاطر است که اغلب نسبت به ماینرهای GPU برتری دارند. ماینرهایی که ای سیک آن ها قابلیت استخراج با الگوریتم SHA-256 را داشته باشند، می توانند کوین هایی که در بالا گفته شده است را استخراج کنند.