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