برای مطالعه قسمت قبل آموزش رایگان دوره CEH اینجا کلیک کنید.
الگوریتمها
همانگونه که پیشتر اشاره شد، الگوریتم مجموعهای از دستورالعملها است که برای رمزگذاری و رمزگشایی دادهها استفاده میشود. این مجموعه دستورالعملها به همراه کلید رمزنگاری برای رمزگذاری دادههای متنی ساده استفاده میشود. دادههای متنی ساده رمزگذاری شده با کلیدها یا الگوریتمهای متفاوت، متن رمزگذاری متفاوتی را تولید میکنند. همچنین به این نکته دقت کنید که قدرت سیستمهای رمزنگاری با یکدیگر یکسان نیست و برخی قدرتمندتر هستند.
بهطور مثال، تا چند سال پیش تصور بر این بود که سیستم رمزگذاری سزار کاملاً قوی است، اما دیگر اینگونه نیست و احتمال شکسته شدن آن توسط هکرها وجود دارد. الگوریتم رمزگذاری چقدر باید قوی باشد؟ قدرت یک سیستم رمزنگاری به خود الگوریتم متکی است، زیرا یک الگوریتم ناقص قابل برگشت بوده و احتمال بازیابی کلید رمزنگاری نیز وجود دارد. قدرت مکانیسم رمزگذاری نیز به ارزش دادهها بستگی دارد. دادههای با ارزش بالا به محافظت بیشتری نسبت به دادههایی که ارزش کمی دارند نیاز دارند. اطلاعات با ارزش بیشتر برای محافظت در برابر حملات به کلیدهایی با اندازه طولانیتر و تبادل مکرر کلید نیاز دارند. عامل مهم دیگر این است که دادهها برای چه مدت اعتبار دارند. اگر دادهها فقط برای چند ثانیه معتبر باشند، میتوان از الگوریتم رمزگذاری کوتاهتری استفاده کرد. سیستمهای رمزنگاری مدرن از دو نوع الگوریتم برای رمزگذاری و رمزگشایی دادهها استفاده میکنند. نوع اول رمزگذاری متقارن است که از کلید یکسان برای رمزگذاری و رمزگشایی دادهها استفاده میکند. نوع دوم رمزگذاری نامتقارن است که از کلیدهای مختلفی برای رمزگذاری و رمزگشایی استفاده میکند. در این روش هر یک از طرفین یک جفت کلید اختصاصی خاص خود را دارند. قبل از بررسی هر یک از این مدلها همراه با جزییات آنها، اجازه دهید مزایا و معایب اصلی هر یک از این روشها را بررسی کنیم. مزیت اصلی رمزنگاری متقارن در سرعت بالا است، اما در مقابل دو مشکل توزیع کلیدها را داشته و تنها روی اصل محرمانگی متمرکز است. مزیت رمزنگاری نامتقارن تبادل ساده کلیدها است و میتواند ضمن تمرکز بر اصل محرمانگی در احراز هویت نیز استفاده شود، اما در مقابل نسبت به رمزنگاری متقارن کند است.
رمزنگاری متقارن
رمزگذاری متقارن از الگوهای رمزگذاری قدیمی است که از یک کلید مخفی مشترک برای رمزگذاری و رمزگشایی استفاده میکند. از مهمترین الگوریتمهای متقارن به موارد زیر میتوان اشاره کرد:
■ DES: استاندارد رمزنگاری دادهها (Data Encryption Standard) یکی از متداولترین الگوریتمهای متقارن است.
■ 3DES: به عنوان نسخه توسعه یافته DES ارائه شد که الگوریتم به جای یک بار سه بار تکرار میشود. 3DES از یک کلید 168 بیتی استفاده میکند.
■ Blowfish: یک الگوریتم متقارن همه منظوره است که به عنوان جایگزینی برای DES در نظر گرفته شده است.
■ Rijndael: یک سایفر بلوکی است که به عنوان استاندارد رمزگذاری پیشرفته (AES) توسط دولت ایالات متحده برای جایگزینی DES تصویب شد.
■ RC4: Rivest Cipher 4 یک رمزنگاری مبتنی بر جریان است.
■ RC5: Rivest Cipher 5 یک رمزنگاری مبتنی بر بلوک است.
■ RC6: نسخه اصلاح شده RC5 است که از یک ضرب عدد صحیح و از چهار رجیستر 4 بیتی استفاده میکند.
■ SAFER: روتین رمزنگاری امن و سریع است که در قالب یک سایفر مبتنی بر بلوک کار میکند.
تمامی الگوریتمهای یاد شده روی مفهوم کلید اشتراکی تاکید دارند. شکل زیر این مفهوم را نشان میدهد.
این نمودار ساده فرآیندی که الگوریتمهای رمزگذاری متقارن دنبال میکنند را نشان میدهد. متن ساده با یک کلید منفرد اشتراکی رمزگذاری میشود و سپس به گیرنده پیام انتقال داده میشود. گیرنده برای رمزگشایی پیام باید همین فرآیند را طی کند. استفاده دوگانه از کلیدها عاملی است که این مکانیزم رمزنگاری را ساده کرده و باعث تضعیف آن شده است. رمزگذاری متقارن سریع است و میتواند به سرعت رمزگذاری و رمزگشایی شود.
اگر از کلیدی با اندازه بزرگ استفاده شود، آنگاه رمزگذاری متقارن به سختی درهم میشکند. حتی اگر رمزگذاری متقارن توانایی کافی برای محافظت از اطلاعات را داشته باشد، بازهم سه عیب قابل توجه دارد. اولین مشکل رمزگذاری متقارن کلید توزیعی است. برای کارآمد بودن رمزگذاری متقارن باید روشی مطمئن برای انتقال کلیدها وجود داشته باشد.
در دنیای مدرن، نیاز به نوعی انتقال خارج از باند وجود دارد. بهطور مثال، اگر باب بخواهد برای آلیس یک پیام مخفیانه ارسال کند، بهطوریکه بیل نتواند ارتباطات آنها را شنود کند، چگونه میتواند پیام را ارسال کند؟ در صورت ارسال کلید در قالب متنی واضح، بیل میتواند آنرا رهگیری کند، باب برای حل این مشکل میتواند کلید را به صورت حضوری تحویل دهد، آنرا از طریق پست الکترونیکی یا حتا پیک ارسال کند. تمامی روشهای یاد شده در دنیای تجارت الکترونیکی و ارتباطات الکترونیکی تقریبا غیرکارآمد هستند. حتا اگر مشکلات تبادل کلید برطرف شود، شما هنوز هم هنگام بهکارگیری رمزگذاری متقارن با مشکل بزرگ دیگری که مدیریت کلید است روبرو هستید. بهطور مثال، اگر شما نیاز به برقراری ارتباط با 10 نفر با استفاده از رمزگذاری متقارن داشته باشید به 45 کلید نیاز دارید. فرمول زیر برای محاسبه تعداد کلیدهای مورد نیاز استفاده میشود:
N(N – 1) / 2 or [10(10 – 1)/ 2 = 45 keys]
مشکل سوم و نهایی رمزگذاری متقارن این است که فقط اصل محرمانگی را تضمین میکند و تاثیری روی تأیید اعتبار ندارد. اگر به دنبال احراز هویت هستید باید از رمزنگاری نامتقارن استفاده کنید، اما قبل از بحث در مورد رمزنگاری نامتقارن، اجازه دهید نگاهی به DES یکی از محبوبترین اشکال رمزگذاری متقارن بیندازیم.
استاندارد رمزنگاری دادهها (DES)
استاندارد رمزنگاری دادهها (DES) سرنام Data Encryption Standard بیش از 20 سال است که قدمت دارد. استاندارد فوق توسط دفتر ملی استاندارد (NBS) توسعه یافته است. NBS اکنون به عنوان انستیتوی ملی استاندارد و فناوری (NIST) شناخته میشود. DES پروژه مشترک NBS و IBM بود. IBM قبلاً الگوریتمی به نام لوسیفر را توسعه داده بود. این الگوریتم برای استفاده از یک کلید 56 بیتی اصلاح شد و سرانجام در سال 1976 به عنوان یک استاندارد ملی تصویب شد. صدور گواهینامه به عنوان یک استاندارد ملی رویکرد ثابتی ندارد. بنابراین، DES هر 5 سال یک بار مورد اعتبارسنجی قرار گرفت. در حالی که ابتدا هیچ مشکلی در ارتباط با این الگوریتم شناسایی نشد، اما DES در اواسط سال 1987 با مشکلات جدی روبرو شد. در سال 1993، NIST اظهار داشت كه DES فراتر از حد انتظار ظاهر شده و اکنون به دنبال جایگزین بهتری است. الگوریتم جدید بهنام استاندارد رمزگذاری پیشرفته (AES) سرنام Advanced Encryption Standard نامیده شد. چه اتفاقی برای DES افتاد؟ DES قربانی افزایش قدرت محاسباتی شد. در خبرهای رمزنگاری بزرگ سال 1999 مشاهده کردیم که اعلام شد بنیاد Electronic Frontier Foundation توانست در مدت زمان 23 ساعت DES را شکست دهد. در این آزمایش از محاسبات توزیع شده استفاده شد و بیش از 100000 رایانه برای درهم شکستن الگوریتم فوق به کار گرفته شد. این توان پردازشی فراتر از قدرت کامپیوترهای شخصی است که نشان میدهد الگوریتم قادر بود بسیاری از حملات را خنثا کند.
DES براساس آنچه به عنوان رمزنگاری بلوک شناخته میشود، کار میکند. نوع دیگری از سایفرهای استفاده شده در مبحث رمزنگاری سایفر جریانی است. سایفرهای بلوکی و جریانی را میتوان به گروههای زیر تقسیم کرد:
Block cipher: پیامها را به بلوکهایی تقسیم میکنند تا پردازشهای لازم روی آنها انجام شود.
Stream cipher: پیامها را داخل بیتهایی برای پردازش تقسیم میکنند.
از آنجا که DES مبتنی بر سایفر بلوکی است، دادههای ورودی درون بلوکهایی قرار میگیرند. DES 64 بیتهای متنی ساده را بهطور همزمان پردازش میکند و خروجی آن بلوکهای 64 بیت متنی رمزنگاری شده است. DES از یک کلید 56 بیتی برای انجام اینکار استفاده میکند. از آنجایی که رمزگذاری متقارن است یک سایفر بلوکی از کلید یکسانی برای رمزگذاری و رمزگشایی استفاده میکند. DES چهار حالت دارد که هر یک توان مشخصی دارند. این چهار حالت DES به شرح زیر است:
Electronic Code Book mode: ECB حالت رمزگذاری بومی DES است که بالاترین عملکرد را دارد، هرچند شکستن آن کار خیلی پیچیده و زمانبری نیست.
Cipher Block Chaining mode: CBC بهطور گسترده ای مورد استفاده قرار میگیرد و شبیه به ECB است. CBC دادههای مربوط به یک بلوک را برای بهکارگیری در مرحله بعد استفاده میکند تا زنجیرهای از بلوکها ایجاد شوند. رویکرد فوق آنرا امنتر از ECB کرده و شکستن آنرا سختتر میکند. مشکل الگوریتم فوق این است که اگر خطایی به وجود آید در بلوکهای دیگر نیز پخش میشود که باعث میشود رمزگشایی آن بلوک و بلوکهای دیگر غیر ممکن شود.
Cipher Feedback mode: CBF رمزنگاری جریانی را تقلید میکند. CFB را میتوان برای رمزگذاری کاراکترهای فردی استفاده کرد. مانند CBC، خطا یا مشکلات مختلف میتوانند از طریق فرایند رمزگذاری گسترش یابند.
Output Feedback mode: OFB نیز الگوی رمزنگاری جریانی را تقلید میکند. برخلاف CFB، خطاهای انتقال در طی فرآیند رمزنگاری پخش نمیشوند، زیرا OFB متن ساده را به عنوان ورودی جریان استفاده میکند تا متن رمزنگاری شده به دست آید.
برای بهبود عملکرد استاندارد رمزگذاری DES ، نسخه توسعه یافتهای بهنام 3DES عرضه شد. 3DES میتواند از دو یا سه کلید برای رمزگذاری دادهها استفاده کند و آنچه را که به آن رمزگذاری چندگانه گفته میشود، ارائه دهد. الگوریتم فوق دارای طول کلیدی تا 168 بیت است و امنیت بیشتری دارد، اما تا سه برابر کندتر از DES 56 بیتی است. شکل زیر نمونهای از 3DES سه کلیدی را نشان میدهد.
استاندارد رمزگذاری پیشرفته (AES)
در سال 2002، NIST در مورد جایگزینی DES تصمیم گرفت. جایگزین انتخاب شده Rijndael نام داشت. نام الگوریتم فوق از دو توسعهدهنده آن یعنی وینسنت ریجمن (Vincent Rijmen) و جوآن دمن (Joan Daemen) اقتباس شده بود. Rijndael یک رمزگذار تکرار شونده است که از کلید متغیر و طول بلوک 128 ، 192 یا 256 بیت پشتیبانی میکند. همین موضوع باعث شد تا الگوریتم فوق یک مکانیزم رمزگذاری سریع، ساده و قوی ارائه کند. جالب آنکه در برابر انواع مختلف حملات ایستادگی میکرد. الگوریتم فوق از یک مجموعه موازی چهار مرحلهای دوار استفاده میکند. هر یک از این مراحل در طول هر دور به شرح فرآیند رمزنگاری را انجام میدهند:
■ SubBytes: هر بایت توسط S-box جایگزین میشود.
■ ShiftRows: بایتها به صورت مستطیلی مرتب شده و تغییر مکان داده میشوند.
■ MixColumns: ضرب ماتریس بر اساس مستطیل مرتب شده انجام میشود.
■ AddRoundKey: زیر مجموعه این دورها به سیستم اضافه میشود.
Rivest Cipher
RC سرنام Rivest Cipher یک اصطلاح کلی برای خانواده سایفرهای طراحی شده توسط رون ریوست (ron Rivest) است که شامل RC2 ، RC4 ، RC5 و RC6 میشوند. RC2 اولین الگوریتم این سری است که دارای یک رمزگذار بلوک 64 بیتی با اندازه متغیر است که میتواند به عنوان جایگزینی برای DES استفاده شود. RC4 رمزنگاری جریانی است و سریعتر از رمزنگاری بلوکی کار میکند. RC4 برای خدماتی مانند ارتباط صوتی مفید است. نسخه 40 بیتی در ابتدا در قالب WEP استفاده شد. RC4 عمدتا در حالت 128 بیتی کار میکند. RC5 یک رمزنگاری بلوکی است که در آن تعداد دورها از 0 تا 255 متغیر هستند و کلید میتواند طولی از 0 بیت تا 2040 بیت داشته باشد. سرانجام، RC6 وجود دارد که ویژگی شاخص آن اندازه و دور متغیر است که در استاندارد RC5 وجود نداشت و شامل ضرب عدد صحیح و چهار رجیستر 4 بیتی بود.
رمزگذاری نامتقارن (رمزگذاری کلید عمومی)
رمزگذاری نامتقارن توسط دكتر دبلیو دیفی و دکتر م. ا. هلمن به عنوان اولین پروتكل تبادل كلید عمومی در سال 1976 ابداع شد. رمزنگاری كلید عمومی با استفاده از توابع یك طرفه انجام میشود و به دلیل اینکه به دو کلید نیاز دارد، عملکردی متفاوت نسبت به رمزگذاری متقارن دارد. یک کلید فرآیندی را انجام میدهد و کلید دوم عکس آن فرآیند را انجام میدهد. به این دو کلید در اصطلاح کلیدهای عمومی و خصوصی میگویند. کلید عمومی قابل انتشار است و به هر کسی داده میشود، در حالی که کاربر کلید دوم که خصوصی است را پنهان نگه میدارد. شکل زیر نمونهای از رمزگذاری کلید عمومی را نشان میدهد.
پیادهسازی رمزگذاری نامتقارن با رمزگذاری متقارن به روشهای متفاوتی انجام میشود، زیرا رمزنگاری نامتقران از فرمولهای ریاضی پیچیدهای استفاده میکند. بهطور خاص، از یک تابع دریچه (trapdoor) استفاده میکند. توابع دریچه به تابعی گفته میشود که در یک سو به آسانی محاسبه شده و در سوی مخالف محاسبه آن برای پردازندهها بسیار دشوار است. بهطور نمونه، تابعی را در نظر بگیرید که حاصلضرب دو عدد اول را به شما میدهد. اما اگر این اعداد بسیار بزرگ باشند به سختی میتوان آن را به اعداد پیشین تجزیه کرد. حال اگر یکی از آن دو عدد را به شما بدهند با یک تقسیم ساده، عدد دیگر به دست میآید. مثال دیگر برای توابع دریچه دار مسئله لگاریتم گسسته است. بهطور مثال، اعداد اول 387 و 283 را میتوان در یکدیگر ضرب کرد و مقدار 109.521 را بهدست آورد. با این حال، اگر به شما مقدار 109،521 داده شود، استخراج دو عدد اصلی 387 و 283 بسیار دشوار است. همانگونه که مشاهده میکنید هر کسی که trapdoor را میشناسد، قادر است بر مبنای فرمول فوق در دو جهت عملیات را انجام دهد، اما افراد ناآشنا محاسبات را تنها در یک جهت انجام میدهند. توابع دریچه میتوانند در شیفت به جلو برای رمزنگاری و تأیید امضا استفاده شوند و در جهت معکوس برای رمزگشایی و تولید امضا استفاده شوند. اگرچه فاکتورگیری از اعداد اول بزرگ مخصوص RSA است، اما این تنها نوع نیست. از الگوریتمهای رایج این گروه میتوان به RSA ، Diffie-Hellman ، ECC و ElGamal اشاره کرد که همگی الگوریتمهای نامتقارن محبوب هستند.
در شماره آینده مبحث فوق را ادامه میدهیم.
برای مطالعه رایگان تمام بخشهای دوره CEH روی لینک زیر کلیک کنید:
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟