معرفی و بررسی امنیت الگوریتم های رمزنگاری RSA و DES

در این مقاله قصد دارم مختصری در خصوص امنیت الگوریتم رمزنگاری RSA , ِDES توضیح بدم .

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

مقدمه‌ای بر رمزنگاری

رمزنگاری(Cryptography) علم کدها و رمزهاست. علم رمزنگاری در جستجوی روش‌هایی برای کد کردن یا رمز کردن پیغام‌ها، و روش‌های متناظری برای از کد درآوردن یا رمز خواندن است.رمز کردن به‌طور شاخص از یک کلید عددی مشخص (که ممکن است رقم‌های زیادی داشته باشد) استفاده می‌کند و همان عدد برای رمزخوانی به کار می‌رود. بدون این کلید خواندن پیغام‌های رمز شده ممکن نیست؛ بنابراین ایمنی دستگاه به‌سختی یافتن این کلید بستگی دارد.

دو سیستم رمزنگاری مهم وجود دارد:

  • 1- سیستم رمزنگاری متقارن
  • 2- سیستم رمزنگاری نامتقارن یا کلید عمومی

سیستم رمزنگاری متقارن – الگوریتم DES

در این رمزنگاری از یک کلید برای رمزگذاری و رمزگشایی داده‌ها استفاده می‌شود. سرعت عملیات رمزگذاری در این حالت بیشتر می‌شود ولی درجه اطمینان آن نیز کمتر هست. الگوریتم DES در دههٔ ۷۰ میلادی در آمریکا به‌عنوان یک استاندارد کدگذاری مطرح شد. این الگوریتم این‌گونه عمل می‌کند که رشته‌ای از متن اصلی با طول ثابت را به‌عنوان ورودی می‌گیرد و پس از انجام یک سری اعمال پیچیده روی آن خروجی را که طولی برابر طول ورودی دارد تولید می‌کند.

DES هم‌چنین از یک کلید برای ایجاد رمز استفاده می‌کند و تنها کسانی قادر به رمزگشایی خواهند بود که مقدار کلید را می‌دانند. اگرچه تحلیل‌هایی که دربارهٔ DES انجام‌شده است از هر روش رمز قطعه‌ای دیگری بیشتر است ولی عملی‌ترین حمله علیه این الگوریتم جستجوی جامع فضای کلید است. سه حمله تئوریکی برای این الگوریتم وجود دارند که زمان کمتری نسبت به جستجوی جامع فضای کلید نیاز دارند ولی این روش‌ها در عمل امکان‌پذیر نیستند.

با شکسته شدن الگوریتم DES این استاندارد در سال ۱۹۹۸ تمدید نشد و در سال ۲۰۰۱، الگوریتم AES به‌عنوان استاندارد جایگزین آن تصویب شد. این الگوریتم مانند DES یک الگوریتم رمز قطعه‌ای است ولی برخلاف DES از ساختار فیستل استفاده نمی‌کند. تا سال ۲۰۰۶ تنها حمله مؤثر علیه الگوریتم AES حمله side channel بوده است. در ژوئن سال ۲۰۰۳ دولت آمریکا اعلام کرد که از AES می‌توان برای حفاظت از اطلاعات رده‌بندی‌شده و سری نیز استفاده کرد. برای اطلاعات فوق سری و محرمانه باید از کلیدهایی با طول ۱۹۲ یا ۲۵۶ بیت استفاده کرد.

اساسی‌ترین حمله برای هر رمزی امتحان کردن کلیه مقادیر ممکن برای کلید است. طول کلید، تعداد مقادیر ممکن برای کلید و هم‌چنین عملی بودن این روش را مشخص می‌کند. تردیدی که از ابتدا و حتی قبل از اینکه DES به‌عنوان استاندارد شناخته شود در مورد DES وجود داشت کافی بودن طول کلید بود NSA، IBM را به کاهش طول کلید از ۱۲۸ بیت به ۶۴ بیت و سپس به ۵۶ بیت نمود و این نشان می‌دهد که NSA حتی در آن زمان نیز قادر به شکستن کلیدهایی با طول ۵۶ بیت بوده است. طرح‌های متنوعی برای یک ماشین که قادر به شکستن کلیدهای DES باشد مطرح گردیده است.

در سال ۱۹۷۷، Hellman و Diffie ماشینی طراحی کردند که بیست میلیون دلار قیمت داشت و می‌توانست کلید DES را در یک روز پیدا کند. در سال Wiener 1993 یک ماشین جستجوی کلید را پیشنهاد داد که یک‌میلیون دلار قیمت داشت و قادر بود کلید را در مدت هفت ساعت پیدا کند؛ ولی هیچ‌یک از این طرح‌های ابتدایی پیاده‌سازی نشد و هیچ پیاده‌سازی مورد تأیید قرار نگرفت. در سال ۱۹۹۷ مؤسسه RSA security اعلام کرد که به اولین تیمی که بتواند یک پیغام را که با استفاده از DES رمزگذاری شده است را بشکند یک جایزه ده هزار دلاری اعطا خواهد نمود پروژه DESCHALL برنده این رقابت شد که این کار را با استفاده از زمان بیکاری (idle cycle) هزاران کامپیوتر در اینترنت انجام داد.

عملی بودن شکست DES با اختراع یک DES-cracker توسط EFF در سال ۱۹۹۸ بر همگان روشن شد این ماشین قیمتی حدود دویست و پنجاه‌هزار دلار داشت و انگیزه این گروه بر ای اختراع این ماشین، این بود که نشان دهند که DES هم چنان‌که ازلحاظ تئوری قابل شکست است ازلحاظ عملی نیز می‌توان آن را شکست. این ماشین کلید را با استفاده از روش جستجوی جامع فضای کلید درطی مدت‌زمان کمی بیش از دو روز پیدا می‌کند. تنها DES-cracker تأییدشده پس از ماشین EFF، ماشین COPOCOBANA که در آلمان ساخته شد و برخلاف EFF از مدارات مجتمع در دسترس و قابل پیکربندی دوباره ساخته‌شده است .

در این ماشین صد وبیست عدد FPGA از نوع XILINX Spartan- 1000 موازی باهم کار می‌کنند آن‌ها در ماژول‌های 20 DIMM گروه‌بندی‌شده‌اند هرکدام از این ماژول‌ها شامل شش FPGA می‌باشند. استفاده از سخت‌افزارهای قابل پیکربندی دوباره سبب می‌شود که این ماشین برای شکستن کدهای دیگر نیز قابل‌استفاده باشد. یکی از جنبه‌های جالب این ماشین، فاکتور هزینه آن است این ماشین با ده هزار دلار می‌تواند ساخته شود کاهش هزینه با ضریب ۲۵ نسبت به EFF نشان‌دهنده پیشرفته‌ای متوالی درزمینهٔ سخت‌افزارهای دیجیتالی است.سه حمله شناخته‌شده وجود دارد که می‌تواند به‌طور کامل 16 دور DES را با پیچیدگی کمتر از حمله brute-force بشکند. این سه حمله از قرار زیر می‌باشند:

differential cryptanalysis (DC), linear cryptanalysis (LC), and Davies' attack

توجه کنید که این حملات صرفاً بحث تئوری می‌باشند و تا حالا به‌صورت عملی انجام‌نشده‌اند.ضعف ساختاری DES مربوط به‌اندازه کوچک کلید و بلوک خود می‌باشد که این مشکل در ورژن 3DES حل‌شده است.

سیستم رمزنگاری نامتقارن - الگوریتم RSA

رمزگذاری نامتقارن یا کلید عمومی بر اساس دو کلید به نام‌های عمومی و خصوصی صورت می‌گیرد. هر فردی یک کلید عمومی و یک کلید خصوصی خواهد داشت. کلید عمومی شما در دسترس دیگران می‌باشد ولی کلید خصوصی فقط از آن شما و در دسترس شما می‌باشد.فرض کنید فردی برای شما پیغامی را بفرستد. این پیغام در کامپیوتر مبدأ با کلید عمومی شما رمزگذاری شده و برای شما فرستاده می‌شود تنها کسی که قادر به باز کردن رمز می‌باشد شما می‌باشید زیرا کلید خصوصی دارید که با کلید عمومی شما ارتباط دارد.معمولی‌ترین الگوریتمی که برای رمزنگاری نامتقارن استفاده می‌شود، الگوریتم RSA می‌باشد.این روش پس از کارهای اولیه سه ریاضیدان به نام‌های Ron Rivest، Adi Shamir و Leonard Adleman در سال 1978 منتشر شد.الگوریتم RSA در 3 مرحله کار خود انجام می‌دهد:

  • 1- ساخت کلید
  • 2- رمزگذاری
  • 3- رمزگشایی

انواع حملات به RSA

رمزنگاری سطح پایین، باعث می‌شود که متن رمز شده به‌راحتی شکسته شود.یکی از حملات احتمالی حمله متن رمز شده شناخته‌شده (known ciphertext) می‌باشد. در این حمله مهاجم هم‌متن ساده و رمز شده را می‌داند و سعی در شکستن کلید می‌کند.

حمله Side-channel analysis

حمله side-channel از مکانیزم تجزیه‌وتحلیل BPA و یک فرایند جاسوسی برای کشف کلید خصوصی استفاده می‌کند. زمانی این حمله موفق خواهد بود که بتواند کلید خصوصی را حدس بزند و ازآنجاکه این کلید از بیش از 1000 عدد باینری تشکیل‌شده است، حدس زدن آن کاری خیلی سختی و زمان‌بر و اصطلاحاً غیرممکن می‌باشد.الگوریتم RSA از نوع الگوریتم‌های رمزگذاری نامتقارن (Asymmetric Algorithm) است که از 2 کلید برای code و decode کردن داده‌ها استفاده می‌کند.

این کلیدها را Public key و Private key می‌گویند. Public برای کد کردن پیام توسط فرستنده و Private key برای رمزگشایی توسط گیرنده استفاده می‌شود. الگوریتم DES از نوع الگوریتم رمزنگاری متقارن (Symmetric) است که از یک کلید برای رمزنگاری و رمزگشایی استفاده می‌کند. درنتیجه، مختصر و مفید، الگوریتم نامتقارن دو کلیدی مثل RSA از الگوریتم متقارن تک کلیدی مثل DES قویی‌تر و امن‌تر است.


نظرات