الگوريتم‌های رمزنگاری با كليد نامتقارن

الگوريتم‌های رمزنگاری با كليد نامتقارن

تاریخ ایجاد

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

الگوريتم هاي رمزنگاري با كليد نامتقارن
در قسمت قبلي در مورد الگوريتم هاي رمزنگاري متقارن DES و AES توضيح داديم كه از يك كليد براي رمزنگاري و رمزگشايي استفاده مي كنند. در الگوريتم هاي مذكور در صورتي كه كليد رمزنگاري به سرقت رود محرمانگي اطلاعات نيز از بين خواهد رفت.
الگوريتم هاي رمزنگاري با كليد نامتقارن از كليدهاي مختلفي براي رمزنگاري و رمزگشايي استفاده مي‌كنند. بسياري از سيستمها اجازه مي‌دهند كه يكي از كليدها (كليد عمومي يا public key) منتشر شود در حالي كه ديگري (كليد خصوصي يا private key) توسط صاحبش حفظ مي شود. فرستنده پيام، متن را با كليد عمومي گيرنده، كد مي‌كند و گيرنده آن را با كليد اختصاصي خود رمزگشايي مي كند. بعبارتي تنها با كليد خصوصي گيرنده مي‌توان متن كد شده را به متن اوليه صحيح تبديل كرد. يعني حتي فرستنده نيز اگرچه از محتواي اصلي پيام مطلع است اما نمي ‌تواند از متن كدشده به متن اصلي دست يابد، بنابراين پيام كدشده براي هر گيرنده‌اي، به جز گيرنده مورد نظر فرستنده، بي ‌معني خواهد بود.
معمول ترين سيستم نامتقارن بعنوان RSA‌ شناخته مي‌شود (اين حروف، اول نام پديد آورندگان آن يعني Rivest، Shamir و Adlemen است). اين الگوريتم در سال 1978 در دانشگاه MIT ايجاد شده است و تأييد هويت (روشي براي مطمئن شدن از هويت ارسال كننده پيغام ) را به خوبي رمزنگاري انجام مي دهد. الگوريتم RSA از دو كليد براي رمزنگاري استفاده مي كند: كليد خصوصي و كليد عمومي. در الگوريتم مذكور تفاوتي بين توانايي عملياتي كليد عمومي و خصوصي وجود ندارد و يك كليد مي تواند هم به عنوان كليد خصوصي به كار رود و هم به عنوان كليد عمومي.
كليدهاي RSA با استفاده از روش هاي رياضي و با تركيب اعداد اول توليد مي شوند. بزرگترين عددها با ضرب اعداد كوچك به دست مي آيند و اين اعداد كوچك از لحاظ رياضي به هم وابسته هستند و دانستن يكي از آنها منجر به شناسايي ديگر اعداد اول به كار رفته در كليد مي شود. اين وضعيتي است كه در استفاده از كليد هاي عمومي و خصوصي مورد نظر است. البته در صورتي كه عدد خيلي بزرگ باشد، اين كار به راحتي قابل انجام نيست و وضعيت هاي گمراه كننده بسياري وجود دارند. تنها تركيب درست از اعداد اول موجود در كليد رمزنگاري، قادر به رمزگشايي پيغام است. امنيت الگوريتم RSA و الگوريتم هاي مشابه آن وابسته به استفاده از اعداد خيلي بزرگ است و بيشتر نسخه هاي RSA از اعداد 154 رقمي يا 512 بيتي به عنوان كليد استفاده مي كنند. دسترسي به فاكتورهاي اعداد اول اعداد خيلي بزرگ كه بيش از 100 رقم دارند كار بسيار مشكلي است. البته برخي از محققان توانسته اند با تلاش بسيار اعداد بزرگ را بشكنند ولي اين كار براي هكرها براي ورود به يك سيستم يا سر در آوردن از يك پيغام مقرون به صرفه نمي باشد.
اساس سيستم RSA اين فرمول است: X = Yk (mod r)
كه X متن كد شده، Y متن اصلي، k كليد اختصاصي و r حاصلضرب دو عدد اوليه بزرگ است كه با دقت انتخاب شده‌اند. براي اطلاع از جزئيات بيشتر مي‌توان به مراجعي كه در اين زمينه وجود دارند رجوع كرد. اين شكل محاسبات روي پردازنده‌هاي بايتي بخصوص روي ۸ بيتي‌ها كه در كارتهاي هوشمند استفاده مي‌شود بسيار كند است. بنابراين، اگرچه RSA هم تأييد هويت و هم رمزنگاري را ممكن مي‌سازد، معمولاً تنها براي تاييد هويت منبع پيام از اين الگوريتم در كارتهاي هوشمند استفاده مي‌شود.
مي‌توان از يك سيستم نامتقارن براي نشان دادن اينكه فرستنده پيام همان شخصي است كه ادعا مي‌كند استفاده كرد كه اين عمل در اصطلاح امضاء نام دارد.

  • فرستنده متن اصلي را با استفاده از كليد اختصاصي خود رمز مي‌كند؛ اين فرآيند امضا نام دارد.
  • رمزگشايي عمليات مشابهي روي متن رمزشده اما با استفاده از كليد عمومي فرستنده است. براي تاييد امضاء بررسي مي‌كنيم كه آيا اين نتيجه با ديتاي اوليه يكسان است؛ اگر اينگونه است، امضاء توسط كليد خصوصي متناظر رمز شده است.

به بيان ساده‌ تر چنانچه متني از شخصي براي ديگران منتشر شود، اين متن شامل متن اصلي و همان متن اما رمز شده توسط كليد خصوصي همان شخص است. حال اگر متن رمزشده توسط كليد عمومي آن شخص كه شما از آن مطلعيد رمز گشايي شود، مطابقت متن حاصل و متن اصلي نشان دهنده صحت فرد فرستنده آن است، به اين ترتيب امضاي فرد تصديق مي‌شود. ساير افراد كه از كليد خصوصي اين فرد اطلاع ندارند قادر به ايجاد متن رمز‌شده‌ اي نيستند كه با رمزگشايي توسط كليد عمومي اين فرد به متن اوليه تبديل شود.
ساير سيستمهاي كليد نامتقارن شامل سيستمهاي لگاريتم گسسته مي‌شوند مانند Diffie-Hellman، ElGamal و ساير طرحهاي چندجمله ‌اي و منحني‌ هاي بيضوي. بسياري از اين طرحها عملكردهاي يك‌ طرفه‌اي دارند كه اجازه تاييد هويت را مي ‌دهند اما رمزنگاري ندارند.
يك رقيب جديدتر الگوريتم RPK‌ است. الگوريتم رمزنگاري RPK يك سيستم رمزنگاري نسبتاً جديد بر پايه كليد عمومي است كه مبتني بر رياضياتي است كه امروزه به صورت گسترده در رمزنگاري استفاده مي شود. اين الگوريتم براي كاربردهاي تجاري طراحي شده است و نياز به مطالعات و تحقيقات گسترده در زمينه هاي جديد رياضي ندارد. مطالعه بر روي اين زمينه ها مانند سيستم رمزنگاري منحني هاي بيضوي (ECC)، گاهي اوقات چندين سال به طول مي انجامد. رمزنگاري RPK تمهيداتي را براي رمزنگاري در انتقال اطلاعات در شبكه هاي با سرعت بالا، كارت هاي هوشمند و برنامه هاي مبتني بر ارتباطات بي سيم انديشيده است. اين الگوريتم براي استفاده در پروسه هاي نرم افزاري حجيم مانند تراكنش هاي كارت هاي اعتباري نيز مناسب است.
در هسته RPK يك ابداع به نام Mixture Generator وجود دارد و در پياده سازي آن سه شيفت رجيستر خطي وجود دارند. اين ماشين وضعيت دو حالت عملياتي دارد. يك حالت از شيفت رجيسترها براي به توان رساني استفاده كرده و ديگري به عنوان يك توليد كننده جريان تصادفي از بيت ها براي كاربرد در فاز تركيب رمزنگاري به كار مي رود. سيستم RPK دو مرحله پرهزينه به توان رساني كل پيغام را به طور مؤثر كاهش داده است زيرا موتور هسته آن براي قراردادن سيستم در وضعيت اوليه امن به كار رفته و سپس بين دو حالتي كه در بالا توضيح داده شد براي اجراي رمزنگاري سريع سوئيچ مي كند.
طول كليدها براي اين طرحهاي جايگزين بسيار كوتاهتر از كليدهاي مورد استفاده در RSA‌ است كه آنها براي استفاده در چيپ ‌كارتها مناسب‌ تر است. اما ‌RSA‌ محكي براي ارزيابي ساير الگوريتمها باقيمانده است؛ حضور و بقاي نزديك به سه ‌دهه اين الگوريتم، تضميني در برابر ضعفهاي عمده به شمار مي‌رود.

برچسب‌ها