درحال حاضر سیگنالی وجود ندارد

معرفی کامل عملکرد تابع هش و کاربرد آن در ارزهای دیجیتال

محمد نوروزی
1400/11/18
آموزش

تابع هش یک عملکرد رمزنگاری است که با استفاده از آن می توان انواع داده ها را به صورت امن و سریع بین سیستم های کامپیوتری جا به جا نمود. این تابع می‌تواند داده با اندازه نامشخص را به یک داده با اندازه ثابت ترسیم کند.

معرفی کامل عملکرد تابع هش و کاربرد آن در ارزهای دیجیتال | سیبنال

معرفی عملکرد تابع هش

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

نمونه ای از عملکرد تابع هش

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

معیارهای تعیین کننده در کیفیت توابع هش 

1- جبرگرایی: نتیجه تابع باید در هر شرایطی تغییر ناپذیر باشد. صرف نظر از اینکه چه زمانی از تابع استفاده می شود، چه کسی از آن استفاده می کند یا چند بار از تابع استفاده شده است، اگر پیام اصلی یکسان باشد، نتیجه نیز باید یکسان باشد.

2- کارایی: تابع هش باید بدست آوردن یک نتیجه فوری را ممکن کند، در غیر این صورت خطر کند کردن بیش از حد سیستم های کامپیوتری وابسته به آن را به همراه دارد.

3- مقاومت در برابر حملات: نمی توان پیام اصلی را از راه مهندسی معکوس کشف کرد، مگر اینکه تمام نتایج ممکن را یک به یک امتحان کرد.

4- تفاوت و تمایز: دو پیام بسیار مشابه باید دو نتیجه بسیار متفاوت ایجاد کنند.

5- منحصر به فرد بودن نتایج: تولید دو نتیجه یکسان با دو پیام متفاوت باید غیرممکن باشد.

امنیت داده ها با استفاده از توابع هش

به روز شدن رمزنگاری در توابع

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

مهمترین ویژگی یک تابع امنیت است

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

نمونه ای از عملکرد تابع هش

در این بخش از مطلب با بررسی عملکرد تابع هش و عملکردهای اضافی که می توانیم به آن بیفزاییم شما را با نحوه رمزنگاری محتوا با استفاده از توابع آشنا می کنیم. 
تابع SHA-256 از خانواده ساختارهای درهم سازی است که توسط آژانس امنیت ملی آمریکا ایجاد شد و توسط NSA، که یک آژانس دولتی معروف ایالات متحده است توسعه یافت. و امروزه به عنوان استاندارد رمزنگاری در ایالات متحده آمریکا پذیرفته شده است.
از آنجایی که پیش از این در مورد تکنیک های مختلفی نظیر نمک و فلفل در ساختار هش صحبت کردیم، می خواهیم اثر انگشت (به حاصل به دست آمده از هش اثر انگشت یا امضا می گویند) کلمه bœuf (گوشت گاو در زبان فرانسوی) را محاسبه کنیم.

bœuf 06d2c4c0420e18394520d8ccde3a2a937da4040e3f69a8f440077a935ab7b968
Bœuf 7abd6d70f64e3b264f657c6ba92ad752a422a7dd27ca61fa957c0b79ca36dd0b
boeuf 9c0ed395dc2af34608210254d1f7828757bd750a86d02b63db177ec404d3dd01

شما می توانید با مراجعه به سایتی که برای محاسبه هش SHA-256 طراحی شده باشد و با رعایت اولین معیار که جبرگرایی است، به همین نتایج برسید. هر کسی می تواند این کار را انجام دهد، زیرا تابع هش یک روش استاندارد است که به نتایج یکسان منتهی می شود. به عنوان مثال، مراقب o-e درهم آمیخته در کلمه bœuf باشید، که یک کاراکتر متنی جداگانه محسوب می شود. همچنین شما می توانید با استفاده از تکنیک هایی نظیر نمک و فلفل محتوای نهایی خود را پیچیده تر کنید.
در مثال بالا شما می توانید ویژگی هایی را که به عنوان شاخص های بنیادین توابع هش بیان کردیم شناسایی کنید. سرعت ایجاد این امضا ها بسیار آنی است. و این امر از ویژگی های مهم این هش می باشد. تفاوت و منحصر به فرد بودن نیز در این درهم سازی ها به راحتی قابل مشاهده است. همانطور که می بینید سه مثال بالا بی اندازه شبیه به یکدیگر هستند و با این حال نتایج بدست آمده، از یکدیگر تفاوت آشکاری دارند.
البته تایید انطباق با معیارهای مقاومت در برابر حملات و منحصر به فرد بودن نتایج چندان آسان نیست. تشخیص این امر شامل انجام محاسبات ریاضی بسیار پیچیده است و گاهی اوقات چندین سال زمان نیاز است تا بتوان باگ ها و خطاهای یک تابع را کشف کرد. و این کار در توان هر کسی نیز نیست.
عملکرد تابع هش SHA-256، در حال حاضر امن به نظر می رسد. اما پیشینیان آن همه توسط رمزنگاران و ریاضیدانان برتر شکسته شده اند، بنابراین به خاطر داشته باشید که ممکن است این اتفاق برای SHA-256 نیز به وقوع بپیوندد. به همین دلیل است که رمزنگاران دائما در حال توسعه عملکردهای جایگزین هستند. و توابع به گونه ای مدوله شده اند که برخی نیازها مثل امنیت و سرعت را بهتر برآورده کنند. تابع SHA-3 که با نام Keccak نیز شناخته می‌شود و تابع گرداب و بسیاری دیگر، هدفشان کشف روش‌های مختلف محاسبه برای به دست آوردن نتایج بهتر است.

برای شکستن یک تابع هش زمان زیادی لازم است

 

پیوند بین تابع هش و ارزهای دیجیتال

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

عملکرد هش اتریوم

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

هش SHA-256 در استخراج بیت کوین استفاده می شود

مثال: اگر A=1 و B=2، AB=3 و ABBA=6 باشد. از یک قانون مشابه برای محاسبه مقدار اثر انگشت استفاده می شود.
اگر استخراج کننده بخواهد بلوک خود را اعتبار سنجی کند، باید یک کد تصادفی و مرتبط با بلوک به نام nonce انتخاب کند که اثر انگشت آن محاسبه می شود. اگر این هش مقدار متفاوتی نسبت به هدف داشته باشد، بلوک آن منتشر می شود و در غیر این صورت، او باید از نو شروع کند.
همانطور که در مورد کلمه bœuf و انواع آن متوجه شده اید، تولید اثر انگشت با عملکرد SHA-256 یک نتیجه کاملا متفاوت را ارائه می دهد. در نتیجه، توانایی یافتن نتیجه منطبق با هدف تنها به دو عامل بستگی دارد: شانس، و توانایی عملکرد سریع هش SHA-256.
وقتی هدف به اندازه کافی پیچیده باشد، حتی با خوش شانس بودن، یافتن نتیجه ای مطابق با آن بسیار دشوار است. بنابراین لازم است صدها، هزاران یا میلیون‌ها هش قبل از انتشار یک بلوک محاسبه شود که به قدرت محاسباتی بالایی نیاز دارد.

 

استفاده از رمزنگاری در دنیای رمز ارزها 

تابع SHA-256 احتمالا گسترده ترین و شناخته شده ترین تابع هش در دنیاست، اما تنها نیست و بسیاری از دارایی های رمزنگاری شده دیگر از توابع متفاوتی استفاده می کنند. به عنوان مثال، لایت کوین از تابع Scrypt استفاده می کند که برای جلوگیری از برخی از مشکلات عملکرد SHA-256 در دنیای دارایی های رمزگذاری شده طراحی شده است. Monero و تمام فورک های آن از تابع هش Cryptonight استفاده می کنند. در نهایت، اتریوم دومین رمز ارز مطرح دنیا، عمدتا از تابع SHA-3 (معروف به Kaccak) که در بالا ذکر شد استفاده می‌کند.
البته ذکر این نکته خالی از لطف نیست که استفاده از چندین تابع هش نیز امکان پذیر است. در این روش هش به دست آمده از یک تابع دوباره توسط تابع دیگر محاسبه می شود و یک امضای جدید به وجود می آید. این روش با هدف پیچیده تر کردن حاصل و افزایش امنیت استفاده می شود. به عنوان مثال، Litecoin از تابع Scrypt برای استخراج استفاده می کند، اما تابع SHA-256 را برای ایجاد آدرس های Litecoin حفظ کرده است.

هر تابع قدرت محاسباتی متفاوتی را طلب می کند

 

نتیجه گیری

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

 

امتیاز دهید : (96)
  • تابع هش
  • عملکرد تابع هش
  • معیارهای تعیین کننده در کیفیت توابع هش
  • جبرگرایی تابع هش
  • تکنیک نمک زدن در تابع هش
  • تکنیک salting
  • تکنیک فلفل تابع هش
  • تابع SHA-256
  • ساختار هش چگونه است
  • ساختار درهم سازی توابع
  • استاندارد رمزنگاری
  • تابع هش به زبان ساده
  • تابع هش در رمز نگاری

مطالب مرتبط

Relevent Posts

انواع صندوق های قابل معامله (ETF) برای علاقه مندان به فرصت های سرمایه گذاری
  • انواع صندوق های قابل معامله (ETF) برای علاقه مندان به فرصت های سرمایه گذاری

  • در این مقاله با انواع ای تی اف(ETF) به صورت کامل آشنا خواهید ...
مشاهده مطلب
صفر تا صد ساخت حساب در بروکر آلپاری
  • صفر تا صد ساخت حساب در بروکر آلپاری

  • در این مقاله با انواع حساب و نحوه باز کردن حساب در بروکر آلپاری آشنا خواهیم ...
مشاهده مطلب
طلای آب شده و درآمدزایی از طریق معاملات طلای آب شده
  • طلای آب شده و درآمدزایی از طریق معاملات طلای آب شده

  • در این مقاله راجع به معامله طلای آب شده ، سودآوری از طریق خرید و فروش طلای آب شده و مزایای سرمایه گذاری روی طلای آب شده توضیحات ...
مشاهده مطلب