در مقاله نخست به معرفی مفهوم اصلی رمزنگاری پرداختیم و با برخی از اصطلاحات رایج و کاربردی آشنا شدیم در قسمت دوم به سمت الگوریتم های عمومی و خصوصی گام بر میداریم تا از اجزای اصلی رمزنگاری بیشتر بدانیم. با ما همراه باشید. رمزنگاری دو جزء اصلی دارد، یک الگوریتم و یک کلید. الگوریتم یک مبدل یا فرمول ریاضی است. تعداد کمی الگوریتم قدرتمند وجود دارد که بیشتر آنها به عنوان استاندارها یا مقالات ریاضی منتشر شده اند. کلید، یک رشته از ارقام دودویی (صفر و یک) است که به خودی خود بی معنی است. رمزنگاری مدرن فرض میکند که الگوریتم شناخته شده است یا میتواند کشف شود، کلید است که باید مخفی نگاه داشته شود و کلید است که در هر مرحله پیاده سازی تغییر میکند. رمزگشایی ممکن است از همان جفت الگوریتم و کلید یا جفت متفاوتی استفاده کند. دیتای اولیه اغلب قبل از رمز شدن باز چینی میشود این عمل عموما Scrambling نامیده میشود. به صورت مشخص تر، Hash Function ها بلوکی از دیتا را (که میتواند هر اندازه ای باشد) به طول از پیش مشخص شده کاهش میدهد. البته دیتای اولیه نمی تواند از Hashed Value بازسازی شود. Hash Function اغلب به عنوان بخشی از یک سیستم تایید هویت مورد نیاز هستند خلاصه از پیام (شامل مهم ترین قسمت ها ماننده شمارش پیام، تاریخ و ساعت و نواحی مهم دیتا) قبل از رمزنگاری خود پیام ساخته و Hash میشود. یک چک تایید پیام Message Authentication Check یا به اختصار MAC ، یک الگوریتم ثابت با تولید یک امضاء بر روی پیام با استفاده از یک کلید متقارن است. هدف آن نشان دادن این مطلب است که پیام بین ارسال و دریافت تغییر نکرده است. هنگامی که رمزنگاری توسط کلید عمومی برای تایید هویت فرستنده پیام استفاده میشود، منجر به ایجاد فضای دیجیتال Digital Signature میشود. Public Key یا کلید عمومی، اعداد یا کلماتی که با یک شخص یا سازمان در ارتباط می باشند، هستند. کلید عمومی جزیی از جفت کلید عمومی/خصوصی می باشد و به صورت عمومی در دسترس کسانی که قصد انتقال رمز شده را دارند، قرار میگیرد. Private Key یا کلید خصوصی، اعداد یا کلماتی یک شخص یا سازمان در ارتباط می باشند، هستند. کللید عمومی جزیی از جفت کلید عمومی/خصوصی می باشد. کلید خصوصی فقط در دسترس مالک جفت کلید عمومی/خصوصی می باشد و برای بازگشایی اطلاعاتی که توسط کلید عمومی رمزگزاری شده استفاده میشود. بحث های زیادی پیرامون برتر بودن هر یک از این الگوریتم ها شده است اما جواب مشخصی ندارد. البته بررسی هایی روی این سوال شده است. به طور مثال، Needham و Schro - Eder بعد از تحقیق به این نتیجه رسیدند که طول پیغامی که با الگوریتم های متقارن میتواند رمزگزاری شود از الگوریتم های کلید عمومی کمتر است. با تحقیقات انجام شده به این نتیجه رسیند که الگوریتم های متقارن الگوریتم های بهتری هستند. اما وقتی بحث امنیت پیش می آید الگوریتم های بخش عمومی کارایی بیشتری دارند و به طور خلاصه میتوان گفت " الگوریتم های متقارن دارای سرعت بالاتر و الگوریتم های کلید عمومی دارای امنیت بهتری هستند. " در ضمن گاهی وقت ها نیز، از ترکیب هر دو الگوریتم استفاده میکنند و سیستم جدیدی را به وجود میاورند. به این گونه الگوریتم ها، الگوریتم های ترکیبی ( Hybrid ) گفته میشود. اما اگر به طور دقیق تر به این دو گناهی داشته باشیم، متوجه میشویم که الگوریتم های کلید عمومی و الگوریتم های کلید متقارن دارای دو ماهیت کاملا متفاوت هستند و کاربرد های متفاوتی دارند به طور مثال در رمزنگاری های ساده که حجم داده ها بسیار زیاد استاز الگوریتم های متقارن استفاده میشود زیرا داده ها با سرعت بالاتری رمزنگاری و رمزگشایی میشوند. اما در پروتکل هایی که در اینترنت استفاده میشود برای رمز نگری کلیدهایی که نیاز به مدیریت دارند از الگوریتم های کلید عمومی استفاده میشود. ادامه دارد .