الگوریتم 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
در بهار 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 استفاده میکند، بدون شک همچنان بیت کوین است. این الگوریتم بهعنوان الگوریتم اثبات کار (PoW) برای استخراج و تایید تراکنشهای بیت کوین استفاده میشود و آدرسهای بیت کوین، جهت ایجاد حریم خصوصی و امنیت برای کاربر، با الگوریتم SHA256 ایجاد میگردند.
تعدادی از سایر ارزهای دیجیتالی نیز وجود دارند که به دنبالهروی از بیت کوین، الگوریتم SHA-256 را برای استخراج و تایید تراکنشهای خود بهکار گفتند.
دیدگاه خود را ثبت کنید
فک نکنم کسی تا حالا درست مفهوم ارز ذیجیتال را فهمیده باشه انگار داریم هوا خرید و فروش می کنیم ولی بازم همه باهاش کار می کنن
مثل فیزیک کوانتوم میمونه که کسی تا حالا نفهمیده ولی کاربردم داره
شناخت مفهوم ارز دیجیتال مستلزم کسب دانش در زمینه های مختلف من جمله کامپیوتر و اقتصاد و حسابداری، بازارهای مالی است.
اگر می خواهید منطق ارزهای دیجیتال را درک کنید، دانش کامپیوتری خود را بالا ببرید.
البته برای کار با یک پدیده علمی نیازی نیست در حد دانشمندی که آن را ایجاد کرده است اطلاعات در مورد آن داشته باشیم. مثلا شما برای اینکه یک هواپیما را برانید نیاز ندارید که دانش تولید هواپیما را داشته باشید. اما سیستم هواپیمایی ( پرواز ) از مجموعه ای از بخش های مختلف تشکیل شده است که هر کدام دانش و متخصص خاص خود را طلب می کند. سیستم ارز دیجیتال ( برای نمونه بیت کوین ) نیز یک سیستم مشابه سیستم هواپیمایی یا پرواز دارد. به همین پیچیدگی و گستردگی. پس شما اگر از درک کلیت آن عاجز هستید بخاطر این است که آن را سیستم کوچک تصور میکنید.