زنجیره درهمسازی
زنجیره درهمسازی یا زنجیره هش اعمال پیوسته تابع درهمساز رمزنگارانه بر روی تعدادی دادهاست. در امنیت رایانه از زنجیره درهمسازی برای بدست آوردن تعداد زیادی رمز یکبار مصرف از روی یک رمز استفاده میشود. برای برقراری شرط غیرقابل انکار بودن یک تابع درهمسازی (هش) میتواند به بخشهای مختلف اطلاعات اعمال گردد تا تاریخچهای از دادهها و اطلاعات در دسترس باشد.
تعریف
زنجیره درهمسازی اعمال تابع درهمساز رمزنگارانه بهطور پیوسته بر روی مقداری از داده و اطلاعات است. اگر تابع درهمساز را
کاربردها
برای اولین بار لیزلی لمپورت (به انگلیسی: Leslie Lamport) پیشنهاد داد که از زنجیره درهمسازی برای محافظت از رمزعبور در محیطهای ناامن استفاده شود. به عنوان مثال یک سرور که مجهز به سیستم احراز هویت است میتواند از زنجیره درهمسازی به جای نوشته ساده استفاده کند تا از سرقت از سرور جلوگیری شود. با توجه به این که تابع درهمسازی مشخص نیست پس در نتیجه سرقت از سرور مشکل خواهد شد. به عنوان مثال، سرور از کاربر
# Server owner knows numbers in Hash Chain and server backward checks the password.
class Server:
__init__(self, server_pasword, server_owner_name):
self.server_pasword = server_pasword
self.server_owner_name = server_owner_name
login(self, password):
if (H(password) == self.server_pasword):
self.server_pasword = password
login_accepted()
else:
print("Uncorrect password")
درخت دودویی درهمسازی
درخت دودویی در همسازی که به آن درخت درهمسازی نیز گفته میشود برای محاسبه درهمسازی تعدادی ورودی استفاده میشود که مقدار هر راس حاصل درهمسازی ترکیب دو فرزند راس است. به همین ترتیب از برگهای درخت شروع به محاسبه درهمسازی میکنیم تا درنهایت مقدار ریشه محسابه شود؛ که در شکل زیر یک نمونه از درخت درهمسازی با چهار برگ به عنوان ورودی به نمایش گذاشته شدهاست.
یک مسیر در درخت بالا به رشتهای از ۰ و ۱ مشخص میشود که ۱ به معنای راست (Right) و ۰ به معنای چپ (Left) است. برای مثال مسیر گذرنده از
زنجیره درهمسازی و زنجیره بلوکی
زنجیره درهمسازی و زنجیره بلوکی هر دو از تابعهای درهمسازی رمزنگارانه برای ارتباط بین دو ریشه استفاده میکنند. تفاوت این دو زنجیره در این است که زنجیره بلوکی (که برای بیت کوین و … استفاده میشود) استفادهای همچون دخیره اطلاعات در یک بلوک برای رمزنگاری دارد. به همین دلیل زنجیره بلوکی در ارزهای دیجیتال استفاده فراوان دارد به این صورت که هر بلوک اطلاعات دارای کدی است که در صورت دستیابی به آن کد، بلوک رمزگشایی خواهد شد. کد ذکر شده باید به صورتی باشد که نتیجه درهمسازی آن خاصیت مشخصی داشته باشد. محاسبه کد یک بلوک زمانبر و انرژیبر است و به همین دلیل است که ارزهای دیجیتال گران محسوب میشوند. در طرف دیگر زنجیره درهمسازی استفاده گستردهای در رمزهای یکبار مصرف دارد که امنیت بیشتری نسبت به رمزهای معمولی به ارمغان میآورد.
جستارهای وابسته
- رمز یکبار مصرف
منابع
- ↑ "OTP". Wikipedia (به انگلیسی). 2019-04-26.
- ↑ "Hash chain". Wikipedia (به انگلیسی). 2019-02-13.
- ↑ Lamport, Leslie (1981-11-01). "Password authentication with insecure communication". Communications of the ACM. 24 (11): 770–772. doi:10.1145/358790.358797. ISSN 0001-0782.
- ↑ «The great chain of being sure about things». The Economist. ۲۰۱۵-۱۰-۳۱. شاپا 0013-0613. دریافتشده در ۲۰۱۹-۰۶-۰۴.