رمزدار زندگی کنید!
(قسمت اول)
ابتدا نگاهی گذرا به تعریف رمزنگاری:
یکی از تعاریف ساده رمزنگاری، بهم ریختگی اطلاعات به طوری که برای کسی قابل فهم نباشد، می باشد. فن آوری رمزنگاری امکان مشاهده، مطالعه و تفسیر پیامهای ارسالی توسط افراد غیر مجاز را از بین برده و باعث آسوده خاطر شدن صاحب اطلاعات می شود. از رمزنگاری به منظور حفاظت دادهها در شبکههای عمومی نظیر اینترنت استفاده میگردد و در این رابطه از الگوریتمهای پیشرفته ریاضی به منظور رمز نمودن پیامها و ضمائم مربوطه، استفاده میشود.
حال برای رسیدن به رمزنگاری می بایست از مکانیزم های آن که به اصطلاح الگوریتم های رمزنگاری گفته می شود استفاده کرد. این الگوریتم ها می بایست خصوصیاتی داشته باشند مانند:
امنیت: داده ارسالی نمیبایست توسط افراد غیر مجاز، استفاده (خوانده) گردد
هویت: افرادی که اطلاعات را می فرستند و دریافت می کنند می بایست همانی باشند که ادعا می کنند
غیرجعلی بودن اطلاعات: داده دریافت شده در مقصد با داده ارسال شده در مبداء یکسان بوده و اطلاعات دستکاری نشده باشد
الگوریتم های رمزنگاری سه مکانیزم فوق را می بایست دارا باشند که بتوانند بیشترین میزان امنیت را برای داده ها فراهم نمایند و با رمز نمودن آنها امکان دستیابی به آن را حدالمقدور مشکل یا غیر ممکن سازند.
الگوریتمهای رمزنگاری به دو گروه عمده تقسیم میگردند:
الگوریتمهای محدود: در این نوع الگوریتمها، محور امنیت اطلاعات بر محرمانه نگه داشتن الگوریتم استفاده شده در فرآیند رمزنگاری استوار است.
الگوریتمهای مبتنی بر کلید: در این نوع الگوریتمها، کلید محرمانه تلقی شده و الگوریتم میتواند در دسترس عموم باشد.
در این رابطه از دو مدل رمزنگاری عمده استفاده میگردد:
کلید خصوصی (متقارن): فرستنده و گیرنده از یک کلید یکسان به منظور رمزنگاری و رمزگشائی استفاده مینمایند.
کلید عمومی (نامتقارن): به ازای هر کاربر از دو کلید استفاده میشود. یکی از کلیدها عمومی بوده و در دسترس همگان قرار داشته و کلید دوم بصورت محرمانه میباشد.
رمزنگاری کلید عمومی (الگوریتم نامتقارن Public Key)
رمزنگاری کلید عمومی که از آن با نام رمزنگاری نامتقارن نیز گفته می شود، از دو کلید متفاوت برای عملیات رمزنگاری استفاده مینماید، یک کلید برای رمزنگاری و کلیدی دیگر برای رمزگشائی.
در رمزنگاری کلید عمومی، با استفاده از یک روش کاملاً ایمن یک کلید برای ارسال کننده اطلاعات ایجاد و وی با استفاده از کلید فوق، اقدام به رمزنگاری و ارسال پیام رمز شده برای گیرنده مینماید. امکان رمزگشائی پیام رمز شده صرفاً توسط دریافت کننده، امکان پذیر خواهد بود. در این مدل، سیستم یک زوج کلید خصوصی و عمومی ایجاد مینماید. کلید عمومی برای شخصی که از آن به منظور رمزنگاری یک پیام استفاده مینماید، ارسال میگردد. وی پس از رمزنگاری پیام با استفاده از کلید عمومی، پیام رمز شده را ارسال مینماید. دریافت کننده با استفاده از کلید خصوصی، اقدام به رمزگشائی پیام مینماید.
نکته مهمی که اینجا میبایست به آن اشاره کرد این است که ماهیت کلید خصوصی استفاده شده در رمزنگاری کلید عمومی، مشابه کلید خصوصی استفاده شده در رمزنگاری کلید خصوصی نمیباشد. حتی اگر یک فرد غیر مجاز، به کلید عمومی دستیابی پیدا نماید وی نمیتواند با استفاده از آن اقدام به رمزگشائی پیام رمز شده نماید، چراکه رمزگشائی پیام صرفاً با استفاده از کلید خصوصی امکان پذیر میباشد.
برخلاف رمزنگاری کلید خصوصی، کلیدهای استفاده شده در رمزنگاری کلید عمومی چیزی بمراتب بیشتر از رشتههای ساده میباشند. کلید در این نوع رمزنگاری دارای یک ساختار خاص با هشت فیلد اطلاعاتی است که دو فیلد آن به منظور رمزنگاری با استفاده از کلید عمومی استفاده میگردد و شش فیلد دیگر به منظور رمزگشائی پیام با استفاده از کلید خصوصی مورد استفاده قرار میگیرد.
در سیستم رمزنگاری کلید عمومی با توجه به عدم ضرورت مبادله رمز مشترک، اولین مسئله در مدیریت کلید برطرف میگردد.
معمولترین سیستم نامتقارن، سیستم رمزنگاری کلید عمومی بنام RSA میباشد (حروف اول پدیدآورندگان آن یعنیRivest ، Shamir و (Adlemen میتوان از یک سیستم نامتقارن برای نشان دادن اینکه فرستنده پیام همان شخصی است که ادعا میکند، استفاده کرد.
این عمل اصطلاحا امضاء نام دارد. RSA شامل دو تبدیل است:
1. امضاء: برای اینکار متن اصلی با استفاده از کلید اختصاصی رمز میشود.
2. رمزگشایی: در این مرحله، عملیات مشابهای روی متن رمزشده صورت میگیرد ولی اینکار با استفاده از کلید عمومی است.
برای تایید امضاء بررسی میکنیم که آیا این نتیجه با دیتای اولیه یکسان است؛ اگر اینگونهاست، امضاء توسط کلید اختصاصی متناظر رمزشدهاست. به بیان سادهتر چنانچه متنی از شخصی برای دیگران منتشر شود، آن متن شامل متن اصلی و متن رمز شده متن اصلی توسط کلید اختصاصی همان شخص میباشد.
حال اگر متن رمزشده توسط کلید عمومی آن شخص که شما از آن مطلعید رمزگشایی شود، مطابقت متن حاصل و متن اصلی نشاندهنده صحت فرد فرستندهاست، به این ترتیب امضای فرد تایید میشود.
اساس سیستم RSA فرمول زیر است : X = Y^k (mod r)
که X متن کد شده، Y متن اصلی، k کلید اختصاصی و r حاصلضرب دو عدد اولیه بزرگ است که با دقت انتخاب شدهاند. این شکل محاسبات، روی پردازندههای بایتی بخصوص روی 8 بیتیها که در کارتهای هوشمند استفاده میشود بسیار کند است. بنابراین، اگرچه RSA هم تصدیق هویت و هم رمزنگاری را ممکن میسازد، درواقع برای تایید هویت منبع پیام است که از این الگوریتم در کارتهای هوشمند استفاده میشود و برای نشان دادن عدم تغییر پیام در طول ارسال و رمزنگاری کلیدهای آتی استفاده میگردد.
سایر سیستمهای کلید نامتقارن شامل سیستمهای لگاریتم گسسته میباشند مانند Diffie-Hellman، ElGamal و سایر طرحهای چندجملهای و منحنیهای بیضوی. بسیاری از این طرحها عملکردهای یک طرفهای دارند که اجازه تایید هویت را میدهند اما رمزنگاری ندارند. معمولاً سیستمی امن محسوب میشود که هزینه شکستن آن بیشتر از ارزش دیتایی باشد که نگهداری میکند.
شکل زیر، فرآیند رمزنگاری مبتنی بر کلید عمومی بین دو کاربر را نشان میدهد:
انواع مدل رمزنگاری کلید عمومی
* رمزنگاری کلید عمومی و امنیت
* رمزنگاری کلید عمومی و تشخیص هویت
* رمزنگاری کلید عمومی و غیرجعلی بودن اطلاعات
* رمزنگاری کلید عمومی و گواهینامه دیجیتالی
ویژگی مدل رمزنگاری کلید عمومی
* عدم استفاده از کلیدهای مشابه در رمزنگاری و رمزگشایی
* هر کاربر دارای یک زوج کلید (عمومی، خصوصی) میباشد. از کلید عمومی به منظور رمزنگاری داده و از کلید خصوصی به منظور رمزگشائی داده استفاده میگردد
* این مدل رمزنگاری تقریباً 500 مرتبه کندتر از رمزنگاری کلید خصوصی (متقارن) است
* از مدل رمزنگاری عمومی به منظور مبادله کلید خصوصی و امضای دیجیتال استفاده میشود
فرآوری: سارا سیفی خواه
بخش دانش و زندگی تبیان
منابع:
امنیت وب-سایت اطلاع رسانی امنیت اطلاعات ایران
سایت اطلاع رسانی فناوری اطلاعات سخاروش
محمود جاوید-درس امنیت اطلاعات دکتر یزدیان