دسته‌ها
پایتون وبلاگ

رمزنگاری نامتقارن – Asymmetric Cryptography

در قسمت اول به تفصیل در خصوص رمزنگاری، تاریخچه آن و همچین رمزنگاری متقارن با جزئیات صحبت کردیم بنابراین در این قسمت به رمزنگاری نامتقارن میپردازیم.

در مدل رمزنگاری متقارن با توضیحاتی که دادیم، می توانیم یک روش امن برای محرمانه نگهداشتن اطلاعات داشته باشیم. مثلا اینکه رمزنگاری با الگوریتم DES هم خیلی امن نبود. اما پس مدل AES منتشر شد. اما بزرگترین مشکل این دور روش علاوه بر پیچیدگی در طراحی الگوریتم  این است که امنیت تا زمانی برقرار است که کلید مخفی مانده باشد. بنابراین هزینه و زمان زیادی می بایست صرف تغییر مداوم این کلید ها بشود. بجز این در هر سیکل تعویض کلید، داده می بایست با کلید قدیمی یکبار رمز گشایی بشود و بعد از این بلافاصله با کلید جدید رمزگذاری. از همین جهت فصل جدید در رمزنگاری باید بوجود می‌آمد.
در سال ۱۹۷۶ آقایان Whitfield Diffie و Martin Hellman یک مقاله با نام New Directions in Cryptography منتشر کردند که در آن دقیقا برای این مسئله راهکاری پیشنهاد میشد. این مقاله روش نوینی ارائه میکرد که مشکلا بنیادی رمزنگاری متقارن را با معرفی مفهومی جدید به اسم کلید عمومی حل میکرد. تا آن زمان فارغ از الگوریتم و روشهای مختلف برای رمزنگاری یک مسئله غیر قابل اجتناب بود. اعتماد به طرفین در حفظ و عدم انتشار کلید. اما این مدل جدید که به مدل Diffie-Helliman key exchange معروف شد مدلی را شبیه سازی کرده بود که فارغ از بحث الگوریتم asymmetric key algorithms نام داشت.

این مدل که برخلاف مدل symmetric یک کلید حتما بین طرفین به اشتراک گذاشته میشد ازیک جفت کلید برای رمزنگاری استفاده میکرد. این دو کلید به صورت ریاضی به هم پیوسته هستند و که هر کدام رمزگذاری/رمزگشایی کلید دیگر را بر عهده خواهد داشت. در این سیستم با تعیین یک کلید به عنوان خصوصی(Private Key) که همیشه مخفی است و دیگری به عنوان عمومی که اغلب به صورت گسترده در دسترس است، هیچ کانال ایمنی برای تبادل کلید لازم نیست. تا زمانی که کلید خصوصی پنهان بماند، کلید عمومی میتواند برای مدت زمان طولانی و بدون به خطر افتادن امنیت شناخته شود و استفاده مجدد از همان جفت کلید را به طور نامحدود ایمن کند.

دو کاربر که میخواهند از سیستم نامتقارن برای تبادل اطلاعات بهره ببرند، هر کدام باید یک کلید خصوصی خودشان و یک کلید عمومی طرف مقابل را داشته باشند که بتوانند در شرایط امن در فضای عمومی تبادل اطلاعات کنند. به اینکار اصطلاحا کانال ایمن(Secure Channel) میگویند.

نکته اینجاست که با فراگیر شدن این روش بعد از دهه ۱۹۷۰ باید استانداردهایی هم براین آن مشخص میشد.

رمزنگاری نامتقارن یا کلید عمومی به دو بخش کوچکتر تقسیم بندی میشود:

  • رمزگذاری(رمز کردن) با کلید عمومی:

در این روش پیام با کلید عمومی دریافت کننده رمز میشودو بجز دریافت کننده که به کلید خصوصی دسترسی دارد کسی نمیتواند محتوای پیام را رمزگشایی کند.

  • امضای دیجیتال:

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

اما یک مشکل بزرگ دیگر بر سر راه است. اطمینان حاصل شود شود که کلید عمومی و امضای آن جعلی نیست. ثابت کردن اینکه صاحب کلید واقعا شخص یا موجودیت مدعی آن است یا نه کمی بحث برانگیز است.

برای فائق آمدن به این مشکل چندین رویکرد وجود دارد:

  • Public Key Infrastructure :

در این روش یک یا چند شخص ثالث تحت عنوان Certificate Authorities یا CA گواهی می کنند که این کلید متعلق متعلق به شخص یا موجودیت مدعی است.  TLS بر این پایه استوار است.

  • Web of Trust:

در این روش با Decentralise Authenticator رابطه بین کاربر و کلید عمومی تاییدیه مجزا میگیرد. PGP و Domain Name System از همین رویکرد استفاده میکند. همچنین DKIM با همین روش ایمیلها را بصورت دیجیتال امضا میکند.

2 دیدگاه دربارهٔ «رمزنگاری نامتقارن – Asymmetric Cryptography»

در مدل نامتقارن، دقیقا چه فرقی بین RSA و DSA هست؟ کدام یکی را باید استفاده کرد؟

سلام و ممنون از پیامت.
والا اختلاف هست بین علما. RSA قدیمی تر هست و همچنان محبوب تر اما DSA جدود ۱۹۹۱ استاندارد شده و در سطح سازمان امنیت مورد تایید تر است. من خودم فرق زیادی نمیبینم بخاطر همین از هر دو استفاده میکنم.

پاسخ

پاسخی بگذارید