۲-۲ سیستمهای کلید نامتقارن
سیستمهای کلید نامتقارن از کلید مختلفی برای رمزنگاری و رمزگشایی استفاده میکنند. بسیاری از سیستمها اجازه میدهند که یک جزء (کلید عمومی یا public key) منتشر شود در حالیکه دیگری (کلید اختصاصی یا private key) توسط صاحبش حفظ شود. فرستنده پیام، متن را با کلید عمومی گیرنده کد میکند و گیرنده آن را با کلید اختصاصی خودش رمزنگاری میکند. بعبارتی تنها با کلید اختصاصی گیرنده میتوان متن کد شده را به متن اولیه صحیح تبدیل کرد. یعنی حتی فرستنده نیز اگرچه از محتوای اصلی پیام مطلع است اما نمیتواند از متن کدشده به متن اصلی دست یابد، بنابراین پیام کدشده برای هرگیرندهای بجز گیرنده مورد نظر فرستنده بیمعنی خواهد بود. معمولترین سیستم نامتقارن بعنوان RSA شناخته میشود (حروف اول پدیدآورندگان آن یعنی Rivest ، Shamir و Adlemen است). اگرچه چندین طرح دیگر وجود دارند. میتوان از یک سیستم نامتقارن برای نشاندادن اینکه فرستنده پیام همان شخصی است که ادعا میکند استفاده کرد که این عمل اصطلاحا امضاء نام دارد. RSA شامل دو تبدیل است که هرکدام احتیاج به بتوانرسانی ماجولار با توانهای خیلی طولانی دارد:
· امضاء، متن اصلی را با استفاده از کلید اختصاصی رمز میکند؛
· رمزگشایی عملیات مشابهای روی متن رمزشده اما با استفاده از کلید عمومی است. برای تایید امضاء بررسی میکنیم که آیا این نتیجه با دیتای اولیه یکسان است؛ اگر اینگونه است، امضاء توسط کلید اختصاصی متناظر رمزشده است.
به بیان سادهتر چنانچه متنی از شخصی برای دیگران منتشر شود، این متن شامل متن اصلی و همان متن اما رمز شده توسط کلید اختصاصی همان شخص است. حال اگر متن رمزشده توسط کلید عمومی آن شخص که شما از آن مطلعید رمزگشایی شود، مطابقت متن حاصل و متن اصلی نشاندهنده صحت فرد فرستنده آن است، به این ترتیب امضای فرد تصدیق میشود. افرادی که از کلید اختصاصی این فرد اطلاع ندارند قادر به ایجاد متن رمزشده نیستند بطوریکه با رمزگشایی توسط کلید عمومی این فرد به متن اولیه تبدیل شود.
اساس سیستم RSA این فرمول است: X = Yk (mod r)
که X متن کد شده، Y متن اصلی، k کلید اختصاصی و r حاصلضرب دو عدد اولیه بزرگ است که با دقت انتخاب شدهاند. برای اطلاع از جزئیات بیشتر میتوان به مراجعی که در این زمینه وجود دارد رجوع کرد. این شکل محاسبات روی پردازندههای بایتی بخصوص روی ۸ بیتیها که در کارتهای هوشمند استفاده میشود بسیار کند است. بنابراین، اگرچه RSA هم تصدیق هویت و هم رمزنگاری را ممکن میسازد، در اصل برای تایید هویت منبع پیام از این الگوریتم در کارتهای هوشمند استفاده میشود و برای نشاندادن عدم تغییر پیام در طول ارسال و رمزنگاری کلیدهای آتی استفاده میشود.
سایر سیستمهای کلید نامتقارن شامل سیستمهای لگاریتم گسسته میشوند مانند Diffie-Hellman، ElGamal و سایر طرحهای چندجملهای و منحنیهای بیضوی. بسیاری از این طرحها عملکردهای یکـطرفهای دارند که اجازه تاییدهویت را میدهند اما رمزنگاری ندارند. یک رقیب جدیدتر الگوریتم RPK است که از یک تولیدکننده مرکب برای تنظیم ترکیبی از کلیدها با مشخصات مورد نیاز استفاده میکند. RPK یک پروسه دو مرحلهای است: بعد از فاز آمادهسازی در رمزنگاری و رمزگشایی (برای یک طرح کلید عمومی) رشتههایی از دیتا بطور استثنایی کاراست و میتواند براحتی در سختافزارهای رایج پیادهسازی شود. بنابراین بخوبی با رمزنگاری و تصدیقهویت در ارتباطات سازگار است.
طولهای کلیدها برای این طرحهای جایگزین بسیار کوتاهتر از کلیدهای مورد استفاده در RSA است که آنها برای استفاده در چیپکارتها مناسبتر است. اما RSA محکی برای ارزیابی سایر الگوریتمها باقی مانده است؛ حضور و بقای نزدیک به سهدهه از این الگوریتم، تضمینی در برابر ضعفهای عمده بشمار میرود.