آشنایی با الگوریتم های رمزنگاری(Encryption) داده ها

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

الگوریتم های برگشت پذیر و پرگشت ناپذیر

فرض کنید قصد دارید رشته "Salam" را رمزنگاری کنید. متناسب با صورت مساله باید یکی از الگوریتم های برگشت پذیر و برگشت ناپذیر را انتخاب کنید. اما تفاوت این دو نوع در چیست؟
الگوریتم های برگشت پذیر: به طور کلی به الگوریتم هایی گفته میشود که پس از رمزنگاری داده اصلی و تبدیل به یک رشته معادل(ciphertext)، این رشته با استفاده از همان الگوریتم یا الگوریتم دیگری قابل بازگشت به رشته اصلی باشد. 
 

الگوریتم رمزنگاری برگشت پذیر

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

الگوریتم رمزنگاری برگشت ناپذیر

الگوریتم های متقارن و نامتقارن

در الگوریتم های مختلف برای رمزنگاری داده ها از یک کلید متنی استفاده میشود؛ به زبان دیگر به طور مثال وقتی میگوییم با استفاده از الگوریتم RSA داده ها رمزنگاری شده است، از یک الگوریتم استاندارد و جهانی صحبت میکنیم که روش کدگذاری و جزئیات الگوریتم تا حد زیادی مشخص است. بنابراین نیاز به وجود یک فاکتور محرمانه در این الگوریتم است تا افراد مختلف نتوانند صرفا با اطلاع از الگوریتم رمزنگاری، عملیات رمزگشایی را به راحتی انجام دهند. در واقع این کلید محرمانه از اهمیت بسیاری برخوردار است و نباید آشکار گردد. 
الگوریتم های رمزنگاری به دو دسته متقارن و نامتقارن تقسیم میشود. 
الگوریتم های متقارن: به الگوریتم هایی که کلید رمزگذاری و رمزگشایی آنها کاملا یکسان است، الگوریتم متقارن گویند. 
الگوریتم های نامتقارن: به الگوریتم هایی که کلید رمزگذاری و رمزگشایی آنها متفاوت است الگوریتم نامتقارن گویند. به طور مثال با کلید A تنها رمزگذاری صورت میگیرد و با کلید B تنها رمزگشایی.
 

نظر خود را بنویسید.