رمز به شیوه سزار
در گزشته ساخت وکشف کدهای رمزی معمولا مختص امور نظامی و دیپلوماتیک بوده است. با رواج روز افزون
ذخیره سازی و انتقال داده های رقمی به وسیله ی داده پردازی الکترونیک سازمانها در هر دو بخش خصوصی و
عمومی احساس کرده اند که لازم است اطلاعات را از دست مخاطبان ناخواسته حفظ کرد. در واقع رواج گسترده
انتقال وجوه از طریق الکتونیک پنهانکاری را در بیشتر معامله های مالی ضروری ساخته است.این است که اخیرا
علاقه ریاضیدانان و دانشمندان علوم کامپیوتر به رمزنگاری یعنی علم مبادله پیام به روشی که برای افراد غیرمجاز
غیر قابل فهم باشد جلب شده است.رمزنگاری تنها وسیله عملی موجود برای حفظ اطلاعات ارسال شده از
طریقه شبکه های ارتباطی عمومی مانند خطهای تلفن ماکروویو یا ماهواره ها است.
به زبان رمزنگاری کدها رمز نامیده میشوند اطلاعی که قرار است مخفی بماند قبل از آنکه به رمز در آید متن
آشکار خوانده میشود و پس از آن متن رمزی نامیده میشود. فرآیند تبدیل متن آشکار به متن رمزی رمزی سازی یا
به رمز در آوردن و فرآیند عکس یعنی تبدیل متن رمزی به متن آشکار رمزگشایی نامیده میشود.
یکی از نخستین سیستمهای رمزنگاری در حدود ۵۰ سال پیش از میلاد مسیح توسط ژولیس سزار امپراطور بزرگ
رم بکار رفت. وی با استفاده از یک شیوه جایگزینی ابتدایی با سیسرون مکاتبه میکرد. در این سیستم بجای
x حرف A به جای Y حرف B به جای Z حرف C و بجای هر حرف دیگر الفبا حرف سوم بعد از آن گذاشته می شد.
اگر متن رمزی متناظر را حرف به حرف زیرمتن آشکار بنویسیم الفبای جایگزینی در رمز سزار به دست می آید:
متن آشکار: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
متن رمزی: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
به عنوان مثال متن آشکار
CAESAR WAS GREAT
به متن رمزی
FDHVDU ZDV JUHDV
تبدیل میشود رمز سزار را میتوان به آسانی با استفاده از نظریه همنهشتی ها توصیف کرد. نخست هر متن آشکار
تحت تناظری به صورت زیر با ترجمه ی حفهای متن به عدد ها به طور عددی بیان میشود:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
اگر p متناضر عددی حرفی از متن آشکار و c متناظر عددی حرفی متن رمزی باشد آنگاه
(به پیمانه ۲۶)C≡P+3
با استفاده از این تناظر رمز کردن مثال فوق قابل توجیه است.
رمز سزار بسیار ساده و بنابراین ایمنی آن فوق العاده کم است. خود سزار پس از چندی این رمز را کنار گذاشت .
نه تنها به دلیل ناامن بودنش بلکه همچنین به دلیل عدم اعتماد سزار به سیسرون که باالاجبار از این رمز آگاه بود.
رمز به شیوه RSA
در بحث رمزنگاری، آراسآ (RSA) شیوه ای برای رمزنگاری به روش کلید عمومی (Public Key) است. این روش نخستین روش مورد اعتماد در بین روش های رمزنگاری دیگر است و یکی از بزرگترین پیشرفت ها در زمینه ی رمزنگاری به حساب می آید. آراسآ همچنان به صورت وسیعی در تبادلات الکترونیکی استفاده می شود و در صورت استفاده درست با کلید های طولانی کاملا امن به نظر می رسد.
این روش نخستین بار در سال ۱۹۷۷ توسط رون ریوست، ادی سمیر و لن ادلمن در دانشگاه ام آی تی مطرح شد. اصطلاح آراسآ نیز از حروف ابتدای نام آنها گرفته شده است. دانشگاه امآیتی حق اختراع (Patent) این روش را به نام خود ثبت کرد. این حق اختراع در ۲۱ سپتامبر سال ۲۰۰۰ میلادی منقضی شد.
آراسآ به طور کلی از دو کلید تشکیل می شود. کلید عمومی و کلید خصوصی. کلید عددی ثابت است که در محاسبات رمزنگاری استفاده می شود. کلید عمومی برای همه معلوم بوده و برای رمز کردن پیام استفاده می شود. این پیام فقط توسط کلید خصوصی باز می شود. به عبارتی دیگر همه می توانند یک پیام را رمز کنند اما فقط صاحب کلید خصوصی می تواند پیام را باز کند و بخواند
مراحل زیر برای تولید کلید طی می شود:
- دو عدد اول بزرگ p و q را به صورت تصادفی بیابید به طوری که
.
- عدد n را محاسبه کنید به طوری که n = pq.
- عدد فی را محاسبه کنید به طوری که
- عدد e را انتخاب کنید به طوری که
و نسبت به
اول باشد.
- عدد d را طوری بیابید که
- دو عدد اول می توانند توسط روش پیدا کردن اعداد اول احتمالی پیدا شوند.
-
- معمولا عدد عمومی (e) را در حدود ۲۱۶ انتخاب می کنند. البته بعضی برنامه اعداد کوچکی را انتخاب می کنند که باعث سریعتر شدن و البته خطرات امنیتی در رمزنگاری می شود.
کلید عمومی تشکیل می شود از :
- عدد n (عدد مشترک)
- عدد e (عدد عمومی)
کلید خصوصی تشکیل می شود از :
- عدد n (عدد مشترک)
- عدد d (عدد خصوصی)
رمز کردن پیام
فرض کنید می خواهید پیامی را رمزنگاری کرده و به فردی دیگر بفرستید. شما می بایست کلید عمومی
آن فرد را از او دریافت کرده و پیام خود را در قالب یک عدد (m) در بیاورید به طوری که این فرآیند برگشت
پذیر بوده و عدد شما از n کوچکتر باشد. بدیهی است اگر پیام بزرگتر حد معمول باشد آن را در بسته های
جداگانه می فرستیم. شما اکنون عدد C را محاسبه می کنید به طوری که
حال اگر پیام رمزنگاری شده ی C را برای فرد مذکور بفرستید او می تواند توسط کلید خصوصی اش آن را باز کند.
باز کردن پیام
فرض کنید شما پیام رمز نگاری شده ی C را دریافت کرده اید و کلید خصوصی خود را در دسترس دارید.
حال شما می توانید عدد m را که معادل پیام اصلی است از C,n,d بازیابی کنید.