رمزنگاری
رمزنگاری علمی است که با استفاده از ریاضیات داده ها را به صورت رمز درآورده و مجدداً می تواند به حالت عادی برگرداند. این علم امکان ذخیره سازی اطلاعات و همچنین انتقال اطلاعات بر بستری نا امن را محقق می سازد. عمل رمزنگاری با استفاده از الگوریتم های ریاضی صورت می پذیرد. در یک سیستم یک پیام با استفاده از یک کلید رمز می شود. پس از آن پیام رمز شده به گیرنده منتقل می شود و در آنجا با استفاده از یک کلید باز می شود تا پیام اصلی به دست آید.
به بیان دیگر رمزنگاری دانش تغییر دادن متن پیام به کمک یک کلید رمزنگاری و یک الگوریتم رمزنگاری است. به صورتی که تنها شخصی که از کلید و الگوریتم مطلع است قادر به استخراج متن اصلی از متن رمز شده باشد و شخصی که از یکی یا هر دوی آن ها اطلاعی ندارد، نتواند به محتوای پیام دسترسی پیدا کند.
الگوریتم های رمزنگاری
الگوریتم رمزنگاری، به هر الگوریتم یا تابع ریاضی گفته می شود که به علت دارا بودن خواص موردنیاز در رمزنگاری، در پروتکل های رمزنگاری مورد استفاده قرار گیرد.
درگذشته سازمان ها و شرکت هایی که نیاز به رمزگذاری یا سرویس های دیگر رمزنگاری داشتند، الگوریتم رمزنگاری منحصر به فردی را طراحی می نمودند. به مرور زمان مشخص شد که گاهی ضعف های امنیتی بزرگی در این الگوریتم ها وجود دارد که موجب سهولت شکسته شدن رمز می شود. به همین دلیل امروزه رمزنگاری مبتنی بر پنهان نگاه داشتن الگوریتم رمزنگاری منسوخ شده است و در روش های تازه رمزنگاری، فرض بر این است که اطلاعات کامل الگوریتم رمزنگاری منتشر شده است و آنچه پنهان است فقط کلید رمز است. بنابراین تمام امنیت حاصل شده از الگوریتم ها و پروتکل های رمزنگاری استاندارد، متکی به امنیت و پنهان ماندن کلید رمز است و جزئیات کامل این الگوریتم ها و پروتکل ها برای عموم منتشر می شود.
- الگوریتم کلید متقارن
در روش الگوریتم متقارن هر دو طرفی که قصد رد و بدل اطلاعات را دارند از «یک کلید مشترک» برای رمزگذاری و رمزگشایی استفاده می کنند. در این حالت رمزگذاری و رمزگشایی اطلاعات دو فرآیند معکوس یکدیگر می باشند. این الگوریتم که به رمزنگاری کلید پنهانی نیز معروف است، فرستنده و گیرنده پیام باید یک راز مشترک داشته باشند که آن «کلید» است. یک الگوریتم مشهور رمزنگاری «استاندارد رمزگذاری داده» یا DES است که برای رمز کردن شماره هویت فردی یا PIN استفاده میشود. مشکل اصلی این روش، این است که کلید مربوط به رمزگذاری باید بین دو طرف به اشتراک گذاشته شود و این سؤال پیش می آید که دو طرف چگونه می توانند این کلید را بهطور امن بین یکدیگر رد و بدل کنند. انتقال از طریق اینترانت و یا به صورت فیزیکی تا حدی امن است، اما انتقال آن در اینترنت بههیچ وجه امن نیست. کلیدهای متقارن باید از طریق یک کانال ایمن توزیع شوند و باید به صورت ادواری تغییر کنند.
در حقیقت رمزنگاری متقارن برای رمزگذاری حجم زیادی از اطلاعات استفاده میشود. از مزایای این روش، سرعت بالا هنگام رمزگذاری است. تولید کلید نیز به صورت تصادفی و سریع انجام می شود. اما تعدد کلیدها برای اعضای هر ارتباط و توزیع کلید بین طرفین ارتباط از مهم ترین نقص های رمزنگاری متقارن است. باوجود تمام این کاستیها، استفاده از این روش در رمزنگاری حجم بالای اطلاعات کاملاً به صرفه است.
- الگوریتم کلید نامتقارن
در روش الگوریتم نامتقارن از دو کلید استفاده می شود؛ یک کلید برای رمزگذاری و دیگری برای رمزگشایی. دو کلید ازنظر ریاضی با هم ارتباط دارند بهگونه ای که داده رمزگذاری شده با هر یک قابل رمزگشایی با دیگری میباشد. در حقیقت هر فرد یک زوج کلید دارد. یک «کلید خصوصی» و یک «کلید عمومی». کلید خصوصی صرفاً متعلق به خود فرد می باشد، اما کلید عمومی در اختیار تمام اشخاصی که قصد ارتباط با این فرد را دارند، قرار می گیرد. به بیان دیگر در رمزنگاری نامتقارن یک جفت کلید عمومی و خصوصی ایجاد شده که کلید عمومی منتشر شده تا دیگران از طریق آن کلید، پیام هایشان را رمز کرده و ارسال کنند. درنهایت فقط «دارنده کلید خصوصی» می تواند پیام های رمز شده با آن کلید عمومی را باز کند.
برای ارسال اطلاعات رمز شده برای هر شخص فقط به کلید عمومی آن شخص نیاز است؛ درنتیجه تنها تائید کلید عمومی طرفین لازم است. مهم ترین ویژگی های تکنیک نامتقارن غیر قابل انکار بودن، امضای الکترونیکی و تائید هویت می باشد.
مهمترین مزیت روش نامتقارن، عدم نیاز به توزیع و ارسال کلید است که امنیت آن را بالا می برد. اما محاسبات پیچیده آن سرعت را به میزان قابل توجهی کاهش می دهد. تولید زوج کلیدی که چنین رابطه ای باهم داشته باشند نیز الگوریتم های پیچیده ای را طلب می کند.
- توابع درهم ساز
الگوریتم های درهم سازی یا Hash برخلاف دو الگوریتم ذکرشده از «کلید» استفاده نمی کنند و عمل رمزگذاری بهصورت «یک طرفه» بر روی اطلاعات انجام می دهند. عملکرد این توابع بر روی دادهها بدین شکل است که با اعمال یک تابع Hash بر روی یک متن، یک چکیده یا دایجست از متن به دست می آید.
به بیان دیگر تابع درهم سازی، رشته طولانی (با طول دلخواه) را به عنوان ورودی دریافت می کند و رشتهای با طول ثابت را بهعنوان خروجی تولید می نماید. به این خروجی چکیده پیام میگویند.
آنچه مهم است این است که چکیده پیام «منحصر به فرد» باشد و هیچگونه اطلاعاتی را درباره پیام در اختیار قرار ندهد و پیام دیگری نباشد که همان چکیده را ایجاد نماید. هر تغییر کوچکی در پیام حتی یک بیت، باید چکیده پیام متفاوتی را ایجاد نماید. یک تابع درهم ساز «امن» است اگر :
• تعیین محتوای پیام از چکیده آن عملی نباشد.
• هیچ دو پیامی چکیده یکسان نداشته باشند.
کلید عمومی و خصوصی
فناوری کلید عمومی مبتنی بر رمزنگاری نامتقارن است. برخلاف رمزنگاری متقارن که کلید مشابهی برای رمزگذاری و رمزگشایی اطلاعات استفاده میشود، در رمزنگاری نامتقارن، دو کلید متفاوت برای این کار به کار گرفته میشود. این کلیدها در یک زمان تولیدشده و از جنبه ریاضی به هم مرتبط هستند بهنحوی که اگر هر یک از کلیدها برای رمزگذاری استفاده شود، کلید دیگر میبایست برای رمزگشایی به کار گرفته شود. الگوریتم هایی که برای تولید این زوج کلیدها استفاده میشوند، این موضوع را تضمین میکنند که درصورتی که یکی از کلیدها، که کلید عمومی نامیده میشود، منتشر گردد. کلید دیگر، یعنی کلید خصوصی را نمی توان به سادگی کشف نمود. کلید عمومی در گواهیهای الکترونیکی گنجانده و به طور گسترده از مخزن مرکز صادرکننده گواهیهای الکترونیکی (CA) منتشر میشود. در حالی که کلید خصوصی نزد صاحب گواهی الکترونیکی نگهداری میشود. کلیدهای خصوصی، که برای شناسایی و امضا استفاده میشوند، هرگز خارج از کنترل مستقیم صاحب گواهی الکترونیکی، تسهیم نمیشوند.
فناوری کلید عمومی برای رمزنگاری، امضای الکترونیکی و شناسایی استفاده می شود. امضای دیجیتال از مکانیزم های رمزنگاری نامتقارن استفاده می کند. در مکانیزم های رمزنگاری نامتقارن، هر فرد دو کلید (مرتبط باهم) در اختیار دارد: کلید خصوصی که برای انجام عملیات امضا کاربرد دارد و تنها در اختیار صاحب امضا است و کلید عمومیکه در اختیار همگان قرار می گیرد تا به وسیله آن، صحت امضای فرد موردنظر کنترل شود.
هویت افراد، که مهمترین دارایی هر شخص تلقی میشود، با این زوج کلید متناظر است؛ بنابراین، باید از کلید خصوصی به درستی محافظت کرد تا از دسترس دیگران محفوظ بماند. کلیدهای خصوصی کاربران از حساس ترین عناصر در رمزنگاری کلید عمومی میباشند و مسئله محافظت از این کلیدها توسط صاحب کلید، بهطوری که امکان دسترسی سایر افراد به آن وجود نداشته باشد، از مهمترین دغدغهها به شمار می آید؛ چراکه به سرقت رفتن آن، به نوعی سرقت هویت الکترونیکی فرد به حساب می آید و امکان هر نوع سوء استفاده ای را فراهم می سازد.