مقدمه و تاریخچه
هر کدام از ما وقتی به دنیای ماموران مخفی و جاسوسان فکر می کنیم چیز های زیادی به ذهنمان می رسد: سفرهای خارجی، ماموریت های خطرناک، اسلحه های عجیب و ماشین های سریع. کمتر کسی در کنار این چیزها به ریاضیات فکر می کند. اما باید بدانیم ریاضیات در فهمیدن پیامهای سری و شکستن رمزها نقش اساسی بازی می کند و در طول تاریخ ریاضیدان ها نتیجه نبردهای فراوانی را با شکستن رمزها تغییر داده اند.
رمزنگاری دانش تغییر دادن متن پیام به کمک یک کلید رمزنگاری و یک الگوریتم رمزنگاری است. به صورتی که تنها شخصی که از کلید و الگوریتم مطلع است قادر به استخراج متن اصلی از متن رمزشده باشد و شخصی که از یکی یا هردوی آنها اطلاعی ندارد، نتواند به محتوای پیام دسترسی پیدا کند. رمزنگاری از طریق پنهان نگاه داشتن الگوریتم رمزنگاری منسوخ است. در روشهای جدید رمزنگاری فرض بر آن است که همگان الگوریتم رمزنگاری را میدانند. آنچه پنهان است فقط کلید است. رمزنگاری علمی است که به وسیله آن میتوان اطلاعات را بصورتی امن منتقل کرد حتی اگر مسیر انتقال اطلاعات (کانالهای ارتباطی) ناامن باشد. دریافتکننده اطلاعات آنها را از حالت رمز خارج میکند (decrypting) که به این عمل رمزگشائی گفته میشود .
توجه داشته باشید که رمزنگاری به تغییر ساده محتویات یک متن گفته میشود با کدگذاری (coding) تفاوت دارد. در این صورت تنها هر کاراکتر با یک نماد تغییر میکند. کلمه Cryptography بر گرفته لغات یونانی‘kryptos’ به مفهوم " محرمانه " و grapheinبه معنای نوشتن " است. قبل از هر چیز لازم است بین رمز و کد تفاوت قائل شویم. رمز به مفهوم تبدیل کاراکتر به کاراکتر یا بیت به بیت ؛ بدون تغییر محتویات زبان شناختی آن است. در مقابل " کد " تبدیلی است که کلمهای را با یک کلمه یا نماد دیگر جایگزین میکند .
دانش رمزنگاری بر پایه مقدمات بسیاری از قبیل تئوری اطلاعات، نظریه اعداد و آمار بنا شدهاست.امروزه در کشور ما نیز دوره دکترای رمزنگاری که از شاخه های رشته ریاضی کاربردی میباشد برگزار میشود.
شروع و توسعه رمزنگاری
اولین بار سزار امپراتور رم باستان برای آنکه بتواند بدون اطلاع دشمن با ا ارتشش در سراسر دنیا در ارتباط باشد نوعی رمز را بکار گرفت. این رمز به این شکل بود که برای فرستادن یک پیام جای هر حرف را با سومین حرف بعد از آن در الفبا عوض می کردند، مثلا به جای 'A' حرف 'D' و به جای 'X' حرف 'A' را می گذاشتند.
بنابراین برای از کد خارج کردن پیام ها کافی بود دریافت کننده جای هر حرف را با سومین حرف بعد از آن در الفبا عوض کند. مثلا سعی کنید این پیغام سزاری را از رمز خارج کنید:
hqhpb dssurdfklqj
wkluwb ghdg
uhwuhdw wr iruhvw
در این کدگذاری ریاضی زمانی مطرح می شود که به هر حرف یک عدد نسبت دهیم. در این صورت فرایند کد کردن مثل اضافه کردن عدد 3 به عدد اولیه خواهد بود
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
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
مثلا برای به رمز درآوردن 'A' : داریم 0+3=3
برای اینکه در مورد حرف های نزدیک به پایان الفبا دچار مشکل نشویم بهتر است به جای جمع معمولی از جمع به پیمانه 26 استفاده کنیم، یعنی به جای هر عدد از باقیمانده تقسیم آن عدد بر 26 استفاده کنیم.
مثلا:
برای 'X' داریم: (به پیمانه 26) 23+3=26=0
برای 'Y' داریم: (به پیمانه 26) 24+3=27=1
برای 'T' داریم: (به پیمانه 26) 19+3=21=21
برای از رمز درآوردن هم می توانیم از تفریق به پیمانه 26 استفاده کنیم. واضح است که می توانیم به جای انتقال 3 تایی از هر انتقالی بین 1 و 25 استفاده کنیم، اما همانطور که احتمالا حدس زده اید شکستن این رمز خیلی ساده است یعنی یک جاسوس می تواند با امتحان کردن همه 25 انتقال ممکن به سرعت رمز را بشکند.
حالا به سراغ یک روش پیچیده تر می رویم. فرض کنید به ازای هر حرف الفبا یک علامت جایگزین کنیم، مثلا '*' به جای 'A' و '+' به جای 'B'. مثل رمزی که ماری ملکه اسکاتلند برای مکاتباتش بر علیه الیزابت اول ملکه انگلیس بکار می گرفت .
تا مدت ها مردم فکر می کردند شکستن این رمز ناممکن است تا اینکه آمار ریاضی بوجود آمد .
نموداری که می بینید فراوانی حروف الفبا را در زبان انگلیسی نشان میدهد.
این اطلاعات از شمارش حروف مختلف در حجم زیادی از نوشته ها مثل کتاب ها و روزنامه ها بدست آمده است. این نمودار مثلا نشان می دهد به طور میانگین 13.5 درصد از حروف بکار رفته در متن های انگلیسی E هستند، که فراوان ترین حرف الفبا است. بنابراین وقتی رمزی از نوع بالا داریم احتمالا علامتی که بیش از همه تکرار می شود علامت متناظر E است و فراوانترین علامت بعد از آن متناظر 'T' است. سرنخ های دیگری هم وجود دارد مثلا تنها دو کلمه یک حرفی در انگلیسی وجود دارد: 'I' و 'A' و همچنین 'AND' و 'THE' کلمات خیلی معمولی هستند با کمک این سرنخ ها و کمی آزمایش و خطا میتوان اینگونه رمزها را شکست.همین روش باعث شد که ماری سرش را از دست بدهد.
براساس متون موجود در مورد رمزنگاری تاریخچه این علم را میتوان در نگاهی گذرا بصورت زیر بیان کرد :
1 - شروع رمزنگاری به سال 1900 قبل از میلاد برمیگردد برطبق اساد موجود یک مصری درآن زمان که کلمات بصورت تصویر بیان میشد ازتصاویری استفاده کرده که متداول نبوده بنابراین شروع رمزنگاری از مصریان میباشد . چهارصد سال بعد در بینالنهرین وحه هئی نوشته شد که شامل فرمولهائی رمزی از تهیه شیشه برای کوزه گری میباشد .
2 - 500 سال قبل از میلاد یک نویسنده یهودی کتابی نوشت که کلمات آن برعکس نوشته شده بود این روش بنام رمز آتابش نامیده شد .
3 - در سال 487 قبل از میلاد اسکیتال در یونان بوجود آمد و مورد استفاده قرار گرفت
4 - 400 سال بعد ژولیوس سزار در مکاتبات دولتی از رمز سزار استفاده کرد . او در این رمز جای حروف الفبا را عوض کرد . رمز سزار هرچند در نسبت به رمز آتابش ساده تر است اما مدارک محرمانه دولتی در نگاه اول قابل فهمیدن نبود .