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

تعریف تابع رمزنگاری رمزنگاری

یک تابع هش رمزنگاری نوعی الگوریتمی است که می تواند بر روی یک تکه داده، مانند یک فایل فردی یا یک رمز عبور اجرا شود، برای تولید یک مقدار به نام یک چکمه.

استفاده اصلی از تابع هش رمزنگاری برای تأیید صحت یک قطعه داده است. دو فایل را می توان اطمینان کرد که تنها در صورتی که چک های تولید شده از هر فایل، با استفاده از همان تابع هش رمزنگاری، یکسان باشند، اطمینان حاصل شود.

برخی از توابع هش رمزنگاری معمولا استفاده می شوند شامل MD5 و SHA-1 ، هر چند بسیاری دیگر نیز وجود دارند.

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

توابع هجا رمزنگاری: مورد استفاده

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

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

اگر آنها برابر باشند، پس می توانید مطمئن باشید که دانلود شما یک موزیلا است که در نظر گرفته شده است.

چه چیزی را چک کنید؟ برای بیشتر در این ماشین حساب های ویژه، به علاوه مثال های بیشتری در استفاده از چکمه ها برای اطمینان از اینکه فایل های شما واقعا چه هستند، انتظار می رود که آنها باشد.

آیا می توان عملکردهای مخرب رمزنگاری را معکوس کرد؟

توابع هش رمزنگاری برای جلوگیری از توانایی بازنویسی کنترل های برگشتی به متون اصلی طراحی شده اند.

با این وجود، اگرچه آنها تقریبا غیرممکن است که معکوس شوند، به این معنا نیست که آنها 100٪ تضمین شده برای محافظت از داده ها.

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

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

در اینجا یک نسخه ساده از یک جدول رنگین کمان برای نشان دادن نحوه کار با استفاده از SHA-1 تابع هش رمزنگاری است:

متن ساده SHA-1 Checksum
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
من سگم را دوست دارم a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

برای استفاده از این مقادیر با استفاده از چکمه، نیاز به هکر می شود که الگوریتم رمزنگاری هش برای تولید آنها مورد استفاده قرار می گیرد.

برای حفاظت اضافه شده، برخی از وبسایت هایی که پارامترهای ذخیره شده کاربر را ذخیره می کنند، عملکردهای اضافی را به الگوریتم هش رمزنگاری می رسانند.

این مقدار جدیدی را ایجاد می کند که فقط وب سرور می فهمد و دقیقا با کلمۀ اصلی منطبق نیست.

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

انجام این کار کمک می کند تا سودمندی هک را که کلیه چکمه ها به سرقت رفته اند، محدود کند.

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

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

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

با توجه به اینکه یک تابع هش رمزنگاری یک چکمه غیر قابل برگشت را تولید می کند، این بدان معنی است که شما می توانید رمز عبور خود را به عنوان ساده به عنوان 12345 ، به جای 12 @ 34 $ 5 ، به سادگی به دلیل کنترل خود را نمی توان درک کرد؟ قطعا نمی کند، و در اینجا چرا ...

همانطور که می بینید، این دو کلمه عبور هر دو غیر ممکن است فقط با نگاه کردن به کنگره فقط رمزگشایی:

MD5 برای 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 برای 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

بنابراین، در نگاه اول شما ممکن است فکر کنید که از هر یک از این کلمات عبور، کاملا مناسب است. این درست است اگر یک مهاجم سعی کرد رمز عبور خود را با حدس زدن چک چک MD5 (که هیچ کس آن را انجام نمی داد)، درست انجام داد، اما درست نیست که نیروی خشونت آمیز یا حمله فرهنگ لغت انجام شود (که یک تاکتیک رایج است).

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

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

نکته: نمونه هایی از کلمات عبور ضعیف و قوی را ببینید اگر مطمئن نیستید که آیا یک رمز عبور قوی محسوب می شود.

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

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

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

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

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

دلایل برخورد می تواند رخ دهد به این دلیل است که هر تابع هش تابع رمزگشایی بدون توجه به داده های ورودی مقدار یک طول ثابت ایجاد می کند. برای مثال، تابع هشای رمزنگاری MD5 ، 827ccb0eea8a706c4c34a16891f84e7b ، 1f633b2909b9c1addf32302c7a497983 ، و e10adc3949ba59abbe56e057f20f883e را برای سه بلوک کاملا متفاوت داده می کند.

اولین چکمه از 12345 است ، دوم از بیش از 700 حرف و شماره ساخته شده است، و سوم از 123456 است . هر سه ورودی دارای طول های مختلف هستند اما نتایج فقط از 32 کاراکتر MD5 استفاده می شود.

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

به همین دلیل دیگر توابع هش رمزنگاری ایجاد شده اند. درحالیکه MD5 یک مقدار 32 رقمی را تولید می کند، SHA-1 40 کاراکتر تولید می کند و SHA-2 (512) 128 تولید می کند. بیشترین تعداد کاراکترهایی که چکش دارند، بیشتر احتمال دارد که یک برخورد رخ دهد به دلیل اینکه اتاق بیشتری برای آن فراهم می شود ارزش های منحصر به فرد.