امضای دیجیتال
کلید عمومی رمزنگاری

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

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


دو شاخه اصلی رمزنگاری با کلید عمومی عبارتند از:
رمزگذاری کلیدی عمومی: پیامی که با کلید عمومی رمزگذاری شده باشد فقط به وسیله صاحب کلید خصوصی مطابق با آن رمزگشایی می‌شود و این موضوع به همکاری فرستنده و گیرنده بستگی دارد و می‌تواند اعتماد را تا اندازه زیادی در این سیستم تأمین کند و همکاری کرد.
امضاهای دیجیتال: در مورد امضای دیجیتال پیام با استفاده از کلید خصوصی فرستنده رمزگذاری می‌شود و با استفاده از کلید عمومی فرستنده نیز رمزگشایی می‌شود. رمزنگاری کلید عمومی در مقایسه با صندوق پستی مانند صندوق پستی قفل شده همراه یک دریچه است که این دریچه در دسترس عموم قرار دارد به‌طور مثال اطلاعاتی از قبیل محل خیابان در اختیار عموم قرار می‌گیرد. هرکس با دانستن آدرس خیابان می‌تواند به در مورد نظر مراجعه کرده و پیام مکتوب را از طریق دریچه می‌تواند ببیند ولی فقط شخصی که کلید باز کردن صندوق پستی را دارا می‌باشد می‌تواند پیام را بخواند. همچنین امضاهای دیجیتال شبیه پلمب یک پاکت نامه است که هرکس می‌تواند پاکت نامه را باز کند ولی پلمی فرستنده بر روی پاکت نامه به عنوان نشانی از فرستنده باقی خواهد ماند. مسئله اصلی برای استفاده از رمزنگاری عمومی ایجاد اطمینان در مسیر ارسال اطلاعات است. با توجه به مثال‌های ذکر شده باید کلید عمومی برای هر شخص به درستی تولید شود تا از سوی شخص سومی مورد تهاجم واقع نشود و سلامت سیستم حفظ شود. یک شیوه مرسوم برای رسیدگی به این مسئله استفاده از یک سازمان کلید عمومی است که بتواند در مورد شخص سومی که وارد سیستم می‌شود یک دسترسی متناسب تعریف کند.
تمامی تکنیک‌های قابلیت اجرای سریعتر نسبت به اجرای سیستم کلید خصوصی را دارند و می‌توانند به اندازه کافی برای برنامه‌های متنوع کلید تولید کنند. در عمل اغلب رمز نگاری با کلید عمومی با سیستم کلید خصوصی به کار می‌رود تا بتواند بازدهی بیشتری داشته باشد. چنین ترکیب‌هایی را سیستم رمزنگاری دو رگه می‌نامند. برای رمزنگاری، فرستنده پیام با استفاده از الگوریتم تولید کلید به‌طور تصادفی یک کلید تولید می‌کند و با استفاده از آن کلید تصادفی عملیات رمزنگاری با کلید عمومی را انجام می‌دهد. برای امضاهای دیجیتالی، فرستنده پیام با استفاده از تابع درهم‌سازی پیام را خرد می‌کنند و پس از تأیید محتوای نامه، آن را امضا می‌کند. همچنین گیرنده با استفاده از تابع درهم‌سازی محاسباتی را انجام می‌دهد و کدی را به دست می‌آورد و این کد را با کد حاصل از اعمال تابع درهم‌سازی بر روی امضا، مقایسه می‌کند و بررسی می‌کند که آیا پیام مورد حمله قرار گرفته‌است یا خیر.