رمزنگاري Cryptography


رمزنگاري دانش تغيير دادن متن پيام به كمك يك كليد رمزنگاري و يك الگوريتم رمزنگاري است بصورتي كه تنها شخصي كه از كليد و الگوريتم مطلع است قادر به استخراج متن اصلي از متن رمزشده باشد و شخصي كه از يكي يا هردوي آ نها اطلا عي ندارد نتواند به محتواي پيام دسترسي پيدا كند . رمزنگاري از طريق پنهان نگاه داشتن الگوريتم رمزنگاري منسوخ است . در روشهاي جديد رمزنگاري فرض بر آن است كه همگان الگوريتم رمزنگاري را ميدانند . آنچه پنهان است فقط كليد است .
رمزنگاري علمي است كه به و سيله آن مي توان اطلاعات را بصورتي امن منتقل كرد حتي اگر مسير انتقال اطلاعات ( كانالهاي ارتباطي) ناامن باشد . در يافت كننده اطلاعات آنها را از حالت رمزخارج ميكند
به اين عمل در واقع رمزگشائي ( Decrypting) گفته مي شود . توجه داشته باشيد كه رمزنگاري به تغيير ساده محتويات يك متن گفته ميشود و با كدگذاري(Coding) تفاوت دارد . در اينصورت تنها هر كاراكتر با يك نماد تغيير ميكند .
كلمه Cryptography برگرفته از لغات يونانيkryptos به مفهوم " محرمانه " و Graphein به معناي نوشتن است
قبل از هر چيز لازم است بين رمز و كد تفاوت قائل شو يم . رمز به مفهوم تبديل كاراكتر به كاراكتر يا بيت به بيت ؛ بدون تغيير محتو يات زبان شناختي آن است . در مقابل كد تبديلي است كه كلمه اي را با يك كلمه يا نماد ديگرجايگز ين ميكند . در بررسي نخستين استفاده كنندگان از عمل رمزنگاري به اشخاصي چون "سزار" امپراتور روم و نيز " الكندي" كه يك مسلمان است برميخوريم . از عمده ترين شيوه هاي رمزنگاريهاي ابتدايي پيچيدن نسخه اصلي پيام بر روي استوانه اي با قطر مشخص و نوشتن پيام بر روي متن استوانه اي است . بديهي است بدون درك ميزان قطر، خواندن پيام كار بسيار دشواري بود بعدها از اين روش به همراه موتورهاي الكتريكي براي رمزنگاري استفاده شد.

رمزنگاري امروزه به طور خاص در علم مخابرات مورد استفاده قرار ميگيرد . از رمزنگاري ميتوان براي تأمين امنيت و تأمين اعتبار پيام به صورت جداگانه يا توامان استفاده كرد .
منظور از تأمين امنيت پيام اين است كه به غير از گيرنده مجاز، شخص ديگر قادر به فهميدن متن پيام نباشد . همچنين منظور از اعتبار پيام اين است كه فرستنده واقعي پيام مشخص باشد . دانش رمزنگاري بر پايه مقدمات بسياري از قبيل تئوري اطلاعات، نظريه اعداد و آمار بنا شده است .
الگوريتمهاي مختلفي (مانند md5 , sha) براي رمز كردن اطلاعات وجود دارد .

معرفي رمزگذاري

رمزگذاري يعني تبديل اطلاعات به يك شكل غير قابل فهم و انتقال آن و سپس برگرداندن اطلاعات رمز شده به حالت اوليه و قابل خواندن . عناصر مهمي كه در رمزگذاري مورد استفاده قرار ميگيرند به شرح زير مي باشد :

Public Key يا كليد عمومي

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

دو کلید با هم رابطه‌ای ریاضی دارند ولی عملاً کلید خصوصی از روی کلید عمومی محاسبه پذیر نیست.

اعداد يا كلماتي كه با يك شخص يا سازمان در ارتباط مي باشد . كليد عمومي جزئي از جفت كليد عمومي/ خصوصي مي باشد وبه صورت عمومي در دسترس كساني كه قصد انتقال اطلاعات رمز شده را دارند، ميباشد .

Private Key يا كليد خصوصي

اعداد يا كلماتي كه با يك شخص يا سازمان در ارتباط مي باشد . كليد خصوصي جزئي از جفت كليد عمومي/ خصوصي مي باشد . كليد خصوصي فقط در دسترس مالك جفت كليد عمومي / خصوصي مي باشد و براي بازگشايي اطلاعاتي كه توسط كليد عمومي رمزگذاري شده استفاده ميشود.

ايجادكنند ههاي جفت كليد

براي ايجاد يك جفت كليد عمومي و خصوصي طبق يك الگوريتم رمزگذاري مشخص استفاده ميشود .

Key Factories

براي تبديل كليدهاي نامشخص به كليدهاي مشخص به كار مي رود .

Key stores

بانكي كه براي مديريت تعدادي از كليدها به كار مي رود .

الگوريتمهاي رمزگذاري

الگوريتمها و روشهايي كه براي رمزگذاري اطلاعات به كار ميرود
DES و RSA نام دو تا از معروفترين الگوريتم ها مي باشد . البته الگوريتم هاي بسيار زيادي تا به امروز توسط
متخصصين ايجاد و منتشر شده است اما در ادامه بدليل سادگي و در عين حال كاربردي بودن الگوريتم رمزنگاري RSA
به بررسي اين الگوريتم پرداخته شود.

روشهاي رمزگذاري

روش متقارن Symmetric

در اين روش هر دو طرفي كه قصد رد و بدل كردن اطلاعات را دارند از يك كليد مشترك براي رمزگذاري و نيز بازگشايي رمز استفاده ميكنند . در اين حالت بازگشايي و رمزگذاري اطلاعات دو فرآيند معكوس يكديگر مي باشند . مشكل اصلي اين روش اين است كه كليد مربوط به رمزگذاري بايد بين دو طرف به اشتراك گذاشته شود و اين سوال پيش مي آيد كه دو طرف چگونه مي توانند اين كليد را به طور امن بين يكديگر رد و بدل كنند . انتقال از طريق انترانت و يا به صورت فيزيكي تا حدي امن مي باشد اما انتقال آن در اينترنت به هيچ وجه درست نيست . در اين قبيل سيستمها، كليدهاي رمزنگاري و رمزگشايي يكسان هستند و يا رابطه اي بسيار ساده با هم دارند اين سيستم ها را سيستم هاي متقارن يا " تك كليدي " مي ناميم . به دليل ويژگي ذاتي تقارن كليد رمزنگاري و رمزگشايي، مراقبت و جلوگيري از
افشاي اين سيستم ها يا تلاش در جهت امن ساختن آنها لازم است و در بر گيرنده " جلوگيري از استراق سمع " و " ممانعت از دستكاري اطلاعات " می باشد .

روش نامتقارن Asymmetric

اين روش براي حل مشكل انتقال كليد در روش متقارن ايجاد شد . در اين روش به جاي يك كليد مشترك از يك جفت كليد به نامهاي كليد عمومي و خصوصي استفاده ميشود . در اين روش از كليد عمومي براي رمزگذاري اطلاعات استفاده مي شود . طرفي كه قصد انتقال اطلاعات را به صورت رمزگذاري شده دارد اطلاعات را رمزگذاري كرده و براي طرفي كه مالك اين جفت كليد است استفاده ميشود . مالك كليد، كليد خصوصي را پيش خود به صورت محرمانه حفظ مي كند . در اين دسته، كليدهاي رمزنگاري و رمزگشايي متمايزند و يا اينكه چنان رابطه پيچيده اي بين آنها حكم فرماست كه كشف كليد رمزگشايي با در اختيار داشتن كليد رمزنگاري، عملا ناممكن است.

مقايسه رمزنگاري الگوريتمهاي متقارن و الگوريتمهاي كليد عمومي بحث هاي زيادي شده كه كدام يك از اين الگوريتمها بهترند اما تا بحال جواب مشخصي داده نشده است؟؟ !! !. البته بررسي هايي روي اين سوال شده، به طور مثال Needham و Schroeder بعد از تحقيق به اين نتيجه رسيدند كه طول پيغامي كه با الگوريتمهاي متقارن ميتواند رمزنگاري شود از الگوريتمهاي كليد عمومي كمتر است و با تحقيق به اين نتيجه رسيدند كه الگوريتمهاي متقارن الگوريتمهاي بهينه تري هستند . اما وقتي كه بحث امنيت پيش مي آيد الگوريتمهاي كليد عمومي كارايي بيشتر يدارند . بطور خلاصه مي توان گفت كه الگوريتمهاي متقارن داراي سرعت بالاتر و الگوريتمهاي كليد عمومي داراي امنيت بهتري هستند . در ضمن گاهي از سيستم تركيبي از هردو الگوريتم استفاده مي كنند كه به اين الگوريتم ها الگوريتم هاي تركيبي ( Hybrid ) گفته مي شود . اگر به طور دقيق تر به اين دو نگاه كنيم آنگاه متوجه خواهيم شد كه الگوريتمهاي كليد عمومي و الگوريتمهاي كليد متقارن داراي دو ماهيت كاملاً متفاوت هستند و كار بردهاي متفاوتي دارند . به طور مثال در رمزنگاريهاي ساده كه حجم دادهها بسيار زياد است از الگوريتم متقارن استفاده ميشود زيرا دادهها با سرعت بالاتري رمزنگاري و رمزگشايي شوند اما در پروتكل هايي كه در اينترنت
استفاده مي شود، براي رمز نگاري كليد هايي كه نياز به مديريت دارند از الگوريتمهاي كليد عمومي استفاده ميشود .