رمزنگاری از دیرباز به عنوان یک ضرورت برای حفاظت اطلاعات خصوصی در مقابل دسترسی های غیرمجاز در تجارت و سیاست و مسایل نظامی وجود داشته است. به طور مثال، تلاش برای ارسال یک پیام سری بین دو هم پیمان به گونه ای که حتی اگر توسط دشمن دریافت شود، قابل درک نباشد، در رم قدیم نیز دیده شده است (رمز سزار). در سالیان اخیر رمزنگاری و تحلیل رمز از یک هنر پا را فراتر گذاشته و به یک علم مستقل تبدیل شده است و در واقع به عنوان یک وسیله عملی برای ارسال اطلاعات محرمانه روی کانال های غیر امن مانند تلفن، مایکروویو و ماهواره ها شناخته می شود. پیشرفت علم رمزنگاری موجب به وجود آمدن روش های تحلیل مختلفی شده است به گونه ای که به طور متناوب سیستم های رمز مختلف شکسته شده اند. معروف ترین نمونه از این نوع سیستم ها، ماشین «انیگما» بوده است. انیگما، ماشین رمزگذار و کد کننده ای بوده است که حزب نازی در زمان جنگ جهانی دوم برای ارسال پیام هایشان از طریق رادیو به سایر نقاط از آن استفاده می کردند.
رمزنگاری که به طور عمده به دو بخش رمزنگاری متقارن یا رمزنگاری با کلید خصوصی و رمزنگاری متقارن یا رمزنگاری با کلید عمومی صورت می گیرد، تلاش می کند برای ایجاد یک ارتباط سری از طریق سیستم های مخابراتی و شبکه های کامپیوتری، مباحث مربوط به محرمانگی و احراز هویت را تحت فرض های مشخص، به درستی اثبات نماید. رمزهای کلید خصوصی بر مبنای نوع عملکرد، چگونگی طراحی و پیاده سازی و کاربردهایشان به دو گونه رمزهای بلوکی و رمزهای دنباله ای تقسیم می شوند.
در فصل اول این سیمنار، تعریفی کلی از رمزنگاری و انواع آن ارائه شده است. فصل دوم به بررسی الگوریتم های کلید متقارن و نامتقارن می پردازد. در فصل سوم رمزهای بلوکی و دنباله ای را به طور کامل توضیح داده و در فصل چهارم، دو رمز بلوکی DES و AES که بسیار پرکاربرد هستند، مورد بررسی قرار گرفته اند. فصل پنجم به بررسی طول کلید مناسب برای رمزها جهت ایمنی بیشتر اختصاص دارد.
فصل اول
معرفی رمزنگاری
رمزنگاری دانش تغییر متن پیام به کمک یک کلید رمزنگاری و یک الگوریتم رمزنگاری است. به طوری که تنها شخصی که از کلید و الگوریتم مطلع است قادر به استخراج متن اصلی از متن رمزشده باشد و شخصی که از یکی یا هردوی آنها اطلاعی ندارد، نتواند به محتوای پیام دسترسی پیدا کند. رمزنگاری از طریق پنهان نگاه داشتن الگوریتم منسوخ شده است. در روش های جدید رمزنگاری، فرض بر آن است که همان الگوریتم را می دانند. آنچه پنهان است فقط کلید است.
رمزنگاری علمی است که به وسیله آن می توان اطلاعات را به صورتی امن منتقل کرد، حتی اگر مسیر انتقال اطلاعات (کانال های ارتباطی) ناامن باشد. دریافت کننده اطلاعات آنها را از حالت رمز خارج می کند (decrypting). به این عمل رمزگشائی گفته می شود.
توجه داشته باشید که رمزنگاری به تغییر ساده محتویات یک متن گفته می شود و با کدگذاری (coding) تفاوت دارد. در رمزنگاری، هر کاراکتر با یک نماد تغییر می کند. رمز به مفعوم تبدیل کاراکتر به کاراکتر یا بیت به بیت، بدون تغییر محتویات زبان شناختی آن است. در مقابل «کد» تبدیلی است که کلمه ای را با یک کلمه یا نماد دیگر جایگزین می کند.
کلمه Cryptography به معنای رمزنگاری، برگرفته از لغات یونانی ‘kryptos’ به مفهوم “محرمانه” و ‘graphein’ به معنای “نوشتن” است. در بررسی نخستین استفاده کنندگان از رمزنگاری به “سزار” امپراتور روم و نیز “الکندی” که یک مسلمان است برمی خوریم. از عمده ترین شیوه های رمزنگاری های ابتدایی، پیچیدن نسخه اصلی پیام بر روی استوانه ای با قطر مشخص و نوشتن پیام بر روی متن استوانه ای است. بعدها از این روش به همراه موتورهای الکتریکی برای رمزنگاری استفاده شد
.
رمزنگاری مدت زیادی است که توسط نیروهای ارتشی و دولت برای آسان کردن مخابرات رمزی مورد استفاده قرار گرفته است. در حال حاضر، رمزنگاری برای حفاظت اطلاعات در بسیاری از سیستم های غیرنظامی مانند کامپیوتر، شبکه ها (به طور مثال تجارت الکترونیکی)، تلفن های همراه، و ماشین های سخنگوی اتوماتیک بانک استفاده می شود. همچنین در مدیریت حقوق دیجیتالی برای محدود کردن استفاده از موارد دارای کپی رایت و در نرم افزار حفظ کپی برای حفاظت در برابر مهندسی معکوس و سرقت نرم افزاری به کار می رود.
از رمزنگاری می توان برای تأمین امنیت و تأمین اعتبار پیام به صورت جداگانه یا توأمان استفاده کرد. منظور از تأمین امنیت پیام این است که به غیر از گیرنده مجاز، شخص دیگر قادر به فهمیدن متن پیام نباشد. همچنین منظور از اعتبار پیام این است که فرستنده واقعی پیام مشخص باشد.
دانش رمزنگاری بر پایه مقدمات بسیاری از قبیل تئوری اطلاعات، نظریه اعداد و آمار بنا شده است.