بخشی از مقاله
*** این فایل شامل تعدادی فرمول می باشد و در سایت قابل نمایش نیست ***
رمزنگاري توسط ابر خم هاي بيضوي و پيشنهاد پروتکل توافق کليد گروهي براي شبکه هاي موردي مبتني بر ناحيه با استفاده از ابر خم هاي بيضوي
چکيده
رمزنگاري علم تبادل و نگهداري امن اطلاعات است . انواع سيستم هاي رمزنگاري متقارن و نامتقارن هستند. ارتباط گروهي امن يکي از چالش هاي سيستم هاي رمزنگاري است . پروتکل توزيع کليد ديفي – هلمن در زمينه تبادل کليد اساسي است و همچنين پايه اکثر پروتکل هاي توافق کليد گروهي است که داراي مشکل حمله مردي در ميانه است . براي رفع اين عيب ميتوان از مسائل سخت رياضي همچون لگاريتم گسسته ، خم هاي بيضوي، ابر خم هاي بيضوي بهره برد. در سيستم رمزنگاري RSA طول کليد ١٠٢٤ بيت است که با خم هاي بيضوي طول کليد ١٦٠ بيت و با ابر خم هاي بيضوي طول کليد را به ٥٣، ٥١ بيت مي توان کاهش داد. همچنين پروتکل توافق کليد گروهي براي شبکه هاي موردي مبتني بر ناحيه با استفاده از ابر خم هاي بيضوي پيشنهاد شده در اين مقاله در حافظه مصرفي، پردازش ، پهناي باند، انرژي مصرفي نسبت به پروتکل هاي با ساختار مشابه کارآمدتر مي نمايد.
واژه هاي کليدي: رمزنگاري، شبکه هاي موردي، ابر خم هاي بيضوي، پروتکل توافق کليد گروهي باابر خم بيضوي.
١- مقدمه
رمزنگاري )Cryptography( علم تبادل و نگهداري امن اطلاعات است . محيط هاي نظامي و امنيتي بستر استفاده و گسترش اين علم بوده است . امروزه پيشرفت سريع فناوري اطلاعات و انجام الکترونيکي بسياري از داد و ستدها بر نقش اساسي اين علم افزوده است . به گونه اي که مي توان گفت بدون استفاده از علم رمزنگاري، تجارت الکترونيک و دولت الکترونيکي هيچ گونه کاربردي نخواهند داشت . هنگامي که با امنيت ديتا سر و کار داريم ، نياز به اثبات هويت فرستنده و گيرنده پيغام داريم و در ضمن بايد از عدم تغيير محتواي پيغام مطمئن شويم ، اين سه موضوع يعني محرمانگي Confidentiality، احراز اصالت Authentication و جامعيت Integrity در قلب امنيت ارتباطات ديتاي مدرن قرار دارند و مي توانند از رمزنگاري استفاده کنند. اغلب اين مسئله بايد تضمين شود که پيغام فقط مي تواند توسط کساني خوانده شود که پيغام براي آنها ارسال شده است و ديگران اين اجازه را ندارند. روشي که تأمين کننده اين مسئله باشد رمزنگاري نام دارد. رمزنگاري هنر نوشتن به صورت رمز است بطوريکه هيچ کس به غير از دريافت کننده مورد نظر نتواند محتواي پيغام را بخواند.
براي محافظت از ديتاي اصلي Plaintext، آنرا با استفاده از يک کليد (رشته اي محدود از بيت ها) به صورت رمز درمي آوريم تا کسي که ديتاي حاصله را مي خواند قادر به درک آن نباشد. ديتاي رمز شده Ciphertext به صورت يک سري بي معني از بيت ها بدون داشتن رابطه مشخصي با ديتاي اصلي به نظر مي رسد. براي حصول متن اوليه دريافت کننده آنرا رمزگشايي مي کنند. يک شخص ثالث (مثلاً هکر) مي تواند براي اينکه بدون دانستن کليد به ديتاي اصلي دست يابد، کشف رمز نوشته شده را رمزشکني Cryptanalysis کند. به خاطر داشتن وجود اين شخص ثالث بسيار مهم است .
رمزنگاري دو جزء اصلي دارد، يک الگوريتم و يک کليد، الگوريتم يک مبدل يا فرمول رياضي است . تعداد کمي الگوريتم قدرتمند وجود دارد که بيشتر آنها به عنوان استانداردها يا مقالات رياضي منتشر شده اند. کليد، يک رشته از ارقامي دودويي (صفر و يک ) است که به خودي خود بي معني است . رمزنگاري مدرن فرض ميکند که الگوريتم شناخته شده است يا ميتواند کشف شود. کليد است که بايد مخفي نگاه داشته شود و کليد است که در هر مرحله پياده سازي تغيير ميکند. رمزگشايي ممکن است از همان جفت الگوريتم و کليد يا جفت متفاوتي استفاده کند.
طراحي الگوريتم هاي رمزنگاري مقولـه اي بـراي متخصصـان رياضي است . طراحان سيستم هايي که در آنهـا از رمزنگـاري استفاده ميشود، بايد از نقاط قـوت و ضـعف الگـوريتم هـاي موجود مطلع باشند و براي تعيين الگـوريتم مناسـب قـدرت تصميم گيري داشـته باشـند. اگـر چـه رمزنگـاري از اولـين کارهاي شـانون Claude Shannon در اواخـر دهـه ٤٠ بـه شدت پيشرفت کرده است و هم اکنون نيز با ورود به سـايت بنيـــاد شـــانون Claude Shannon Institute در قســـمت رمزنگاري مشاهده مي گردد که طراحي نرم افزارهـا و سـخت افزارهاي رمزنگاري با خم هاي بيضوي Elliptic curve و ابر خم هاي بيضـوي Hyperelliptic curve از شـاخه هـاي بـه شدت در حال کار رمزنگاري هستند، اما کشف رمز نيز پا بـه پاي رمزنگاري به پيش آمده است و الگوريتم هاي کمي هنوز با گذشت زمان ارزش خود را حفظ کرده اند. بنـابراين تعـداد الگوريتم هاي استفاده شده در سيستم هاي کامپيوتري علمي و در سيستم هاي بر پايه کارت هوشمند بسيار کم است [١] .
٢- طرح هاي رمزگذاري
تعريف طرح رمزگذاري: يک طرح رمزگذاري يا دستگاه
رمزنگاري يک ٥ تائي (P,C,K,E,D) با خواص ذيل است :
٢-١- Plaintext) P) يک مجموعه است . اين مجموعه فضاي متن ساده ناميده مي شود. اعضاي آن متن ساده ناميده مي شوند.
٢-٢- Ciphertext) C) يک مجموعه است . اين مجموعه را فضاي متن رمز مي نامند. اعضاي آن متن رمز ناميده مي شوند.
٢-٣- K يک مجموعه بوده و فضاي کليد (Key) نام دارد.
اعضاي آن کليد ناميده مي شوند.
٢-٤- يک خانواده از توابع با تعريف است . اعضاي آن توابع رمزگذاري Encryption
نام دارند.
٢-٥- يک خانواده از توابع با تعريف است . اعضاي آن توابع رمزگشايي Decryption نام دارند.
٢-٦- براي هر e K، عضوي چون d K وجود دارد که براي هر p P رابطه برقرار است .
به عنوان مثال به يک سيستم رمز که به سيستم رمزي سزار
Caesar cipher معروف است ، اشاره مي کنيم . فضاي متن ساده ، رمز و کليد برابر با هستند. ما بر اين اساس که هر حرف انگليسي را با عدد شماره متناظرش در ترتيب حروف منهاي يک در نظر مي گيريم .
اين توانايي محاسبه با حروف را فراهم مي کند. براي تابع رمزکننده Ee چنين تعريف مي شود.
بر اين اساس براي تابع رمزگشايي Dd را داريم .
کليد رمزگشايي متناظر با کليد رمزگذاري e برابر d=e است . اين خاصيت براي تمامي سيستم هاي رمزنگاري )Cryptosystems( برقرار نيست .
رمز سزار را ميتوان به سادگي به فرمي اصلاح کرد که در آن فضاي متن ساده و متن رمز برابر مجموعه تمامي دنباله باشد.
باز هم فضاي کليد Z26 است . تابع رمز کننده Ee هر عضو را با ٢٦ Wi+ e mod جايگزين مي کند. اين نيز دستگاه رمز سزار ناميده مي شود[٢].
٣- انواع سيستم هاي رمزنگاري
در کل دو نوع سيستم رمزنگاري داريم يکي متقارن
)Symmetric( و ديگري نامتقارن )Asymmetric( که به شرح آنها در ذيل مي پردازيم .
اگر آليس بخواهد يک پيغام رمز شده را به باب بفرستد از يک کليد رمزنگاري e استفاده کرده و سپس باب کليد رمزگشايي d متناظر با آن را براي به دست آوردن متن ساده به کار مي برد.
در يک سيستم رمز اگر همواره کليد رمزگذاري e برابر کليد رمزگشاي d بوده ، و يا d به سادگي از روي e قابل محاسبه باشد آنگاه سيستم را متقارن مي ناميم . اگر آليس و باب از يک سيستم رمز متقارن استفاده کنند بايد قبل از تبادل اطلاعات کليد مخفي e را مبادله کنند. مبادله محرمانه کليد يک مسئله اساسي است . کليد e بايد محرمانه نگهداري شود زيرا هر کس که به آن دسترسي پيدا کند مي تواند کليد رمزگشاي d را به دست آورد. رمز سزار مثالي از يک سيستم رمز متقارن است . کليدهاي رمزگذار و رمزگشا در اين سيستم برابر هستند.
در يک سيستم رمز نامتقارن کليدهاي d و e متمايز بوده و محاسبه d از روي e شدني نيست . در چنين سيستم هايي کليد رمزگذار e را مي توان به صورت همگاني اعلام نمود.
اگر باب بخواهد يک پيغام رمز شده دريافت کند کليد رمزگذاري را به همگان اعلام نموده و کليد رمزگشاي متناظر با آن يعني d را مخفي مي کند. هر کسي مي تواند e را به کار ببرد و متن رمز شده را براي باب بفرستد. از اين رو، e را يک کليد عمومي Public Key مي نامند. ولي تنها باب قادر به گشودن پيام ها مي باشد و از اين جهت يک کليد خصوصي ناميده مي شود. سيستم هاي رمز نامتقارن را سيستم هاي کليد عمومي مي نامند.
در سيستم هاي کليد عمومي غالباً معرفي دو فضاي کليد متفاوت است زيرا کليد هاي عمومي و خصوصي Private شکل هاي متفاوت دارند. اين تنها منجر به تغيير ناچيزي در تعريف رمز مي شود[١].
٤- رمزشکني
شکستن رمز، مرتبط با، حمله )Attack( به سيستم رمز است . در اين قسمت اين حمله ها را دسته بندي مي کنيم .
جهت دشوار نمودن حمله به يک سيستم رمز مي توان آن را مخفي نگهداري نمود. ولي مشخص نيست که از اين طريق چقدر امنيت حاصل مي شود زيرا يک حمله کننده به روش هاي متفاوت مي تواند به شناسائي سيستم اقدام کند. از تکه هاي جدا شده از يک متن رمز مي توان تلاشي را در جهت شناخت سيستم رمز انجام داد. ممکن است حمله کننده Attacker اقدام به جمع آوري اطلاعات از طريق افراد آشنا به سيستم نمايد.
بر اين اساس در بحث رمز شکستن فرض بر اين است که حمله کننده از نوع سيستم رمز به کار رفته مطلع است . تنها کليدهاي (خصوصي) به کار رفته و متن هاي ساده را مخفي فرض ميکنند. حمله کننده تلاش ميکند تا از روي متن رمز متن ساده را به دست آورده و يا حتي کليد به کار رفته را تعيين کند. انواع حمله هاي موجود به شرح زير ميباشند:
٤-١- حمله فقط با متن رمز شده
حمله کننده متن هاي رمز شده را دارد و با استفاده از آن تلاش مي کند که متن ساده متناظر و يا کليد را به دست آورد.
٤-٢- حمله با متن ساده معلوم
در اين روش ، حمله کننده يک متن ساده و متن
رمز متناظر با آن و يا چند جفت از آنها را در اختيار دارد. او تلاش ميکند که کليد را پيدا کرده و يا بقيه متن رمز را رمزگشايي کند.
٤-٣- حمله با متن ساده انتخاب شده (-Chosen Plaintext attack): حمله کننده قادر به رمز کردن متون ساده بوده ولي کليد را نمي داند. او تلاش مي کند که کليد را پيدا کرده و يا متون رمز شده ديگري را باز نمايد.
٤-٤- حمله متن ساده تطبيقي (-Adaptive Chosen Plaintext attack): حمله کننده قادر به رمز گذاري متن هاي ساده مي باشد. او قادر به انتخاب متن هاي ساده جديد به عنوان تابعي از متن رمزهاي به دست آمده مي باشد. اما او کليد را نمي داند و تلاش مي کند که کليد را به دست آورده و يا متن رمز هاي ديگر را باز کند.
٤-٥- حملـه بـا مـتن رمـز شـده برگزيـده (-Chosen Ciphertext attack): حملـه کننـده مـي توانـد رمـز گشـايي موقت کند ولي کليد را نمي داند. او تلاش مي کند که کليد را پيدا کند[٣].
٥- انواع حمله به سيستم هاي رمز نامتقارن
با فرض اينکه سيستم يک طرفه است ، به روش هاي زير ميتوان به اين گونه سيستم ها حمله کرد[١]:
٥-١- روش جستجوي جامع
اين روش مبتني بر جستجوي کل فضاي کليد خصوصي است تا کليد مورد نظر به دست آيد.
٥-٢- يافتن روشي براي پيدا کردن کليد خصوصي از کليد عمومي : براي اکثر سيستم ها ثابت نشده که اين کار ممکن نيست ، پس ممکن است روشي پيدا شود که با داشتن کليد عمومي بتوان کليد خصوصي متناظر را به دست آورد.
٥-٣- حدس زدن پيام رمز شده : در صورتي که طول پيام کوتاه باشد. مثلاً اگر يک متن ٥٦ بيتي توسط الگوريتم نامتقارن رمز شود، چون کليد عمومي را همه مي دانند مي توان تمام متن هاي ٥٦ بيتي را آزمايش کرد تا متن مورد نظر پيدا شود.
٥-٤- حل مسئله سخت رياضي متناظر با الگوريتم .
٦- توزيع کليد عمومي
معمولاً براي توزيع کليد در الگوريتم متقارن از کليد عمومي استفاده م شود. براي اين منظور بايد کليد عمومي افراد در شبکه توزيع شود که براي اين امر روش هاي مختلفي را ميتوان در نظر گرفت . اما معمولاً کليد عمومي به يکي از روش هاي زير توزيع م شود[٤]:
٦-١- اعلان )Announcement(: کليد عمومي به همه کاربران ارسال مي شود. ارسال مي تواند به صورت پخش )Broad cast( باشد يا توسط پست الکترونيک صورت گيرد.
نقطه ضعف اصلي اين روش اين است که کليد عمومي به راحتي جعل )Fiction( مي شود، زيرا احراز اصالتي در آن صورت نمي گيرد.
٦-٢- فهرست )Directory(: در اين روش يک فهرست مطمئن وجود دارد که ليست همه کاربران و کليد عمومي آنها را داراست . با فرض اينکه ارتباط بين فهرست و کاربران با احراز اصالت است ، بدين ترتيب هر کاربر مي تواند کليد عمومي هر کاربر ديگر را به دست آورد. اين روش مانند دفترچه تلفن است . نقطه ضعف آن ، تمرکز کليدها در يک فهرست است و از اين طريق ممکن است مورد حمله قرار گيرد.
٦-٣- مرجع مورد اعتماد: اين حالت پيشرفته فهرست عمومي است . در حالت قبل ممکن است که فهرست داراي کليد نباشد(مثلاً دفترچه تلفن )، اما در اين روش براي دسترسي به فهرست نياز به تاييد دارد. نقطه ضعف آن تراکم مراجعه به يک نقطه است يعني در نقطه اي از سيستم گلوگاه (Buttle-Neek) ايجاد مي شود.
٦-٤- گواهي (Certificate): در اين حالت اطلاعات و کليد عمومي کاربران توسط صادر کننده گواهي که مورد تاييد همه است امضاء مي شود. در اين صورت هر فرد گواهي خودش را نگه مي دارد و در صورت نياز به فرد ديگر ميفرستد.
يک گواهي معمولاً شامل حداقل اطلاعات زير است :
- شناسه
- نام کاربر
- کليد عمومي
- تاريخ ايجاد، تاريخ شروع فعاليت و تاريخ انقضاء[٣].
٧- توزيع کليد متقارن توسط کليد عمومي
با توجه به اينکه الگوريتم هاي نامتقارن معمولاً کند هستند اغلب از آنها براي توزيع کليد در الگوريتم هاي متقارن استفاده ميشود. اين کليد متقارن را کليد جلسه ( Session key) مي نامند. يک روش ساده براي توليد کليد جلسه بين دو کاربر اين است که ابتدا آليس کليد عمومي خود را به همراه شناسه خودش به باب ارسال مي کند، سپس باب کليد جلسه را با کليد عمومي آليس رمز مي کند و براي آليس مي فرستد و بالعکس . اشکال اساسي اين روش آن است که فرد سومي مي تواند در وسط قرار گيرد و کليد جلسه را بداند، بدون اينکه آليس و باب خبر دار شوند اين نوع از حمله را حمله مردي در ميانه (Man in the middle attack) مي نامند. يکي از روش هاي امن که محرمانگي و احراز اصالت را شامل مي شود اين است که ، فرض مي شود کليدهاي عمومي قبلاً به يکي از روش هاي ارائه شده در بند ٦ (همچون گواهي) مبادله شده اند. به دليل اينکه در بعضي سيستم ها کليد متقارن به طور متناوب عوض مي شود و نيز سرعت الگوريتم هاي نامتقارن کم است ، لذا ترجيح داده مي شود از مرکز توزيع کليد (Key distribution center) براي توزيع کليد استفاده شود (يعني توسط کليد اصلي بين مرکز توزيع کليد و هر کاربر). در اين حالت مي توان کليد اصلي را توسط الگوريتم نامتقارن مبادله کرد[٤].
٨- پروتکل ديفي - هلمن
در اين قسمت پروتکل ديفي – هلمن (Diffie–Hellman) را براي تبادل کليد روي کانال ناامن بررسي مي کنيم . خود اين پروتکل يک سيستم رمز عمومي نيست بلکه پايه اي براي سيستم رمزگذاري الجمال (ElGamal encryption system)
است . وضعيت به شرح زير است .
آليس و باب ميخواهند از يک سيستم رمز متقارن روي يک کانال ناامن استفاده کنند. در ابتدا آنها بايد يک کليد مبادله کنند. سيستم تبادل کليد ديفي – هلمن اين امکان را به آليس و باب ميدهد تا از کانال ناامن براي تبادل کليد استفاده کنند. هر کسي ميتواند به تبادل کليد توجه داشته باشد اما اطلاعات به دست آمده را نمي توان در تشخيص کليد مخفي به کار برد. پروتکل ديفي – هلمن را ميتوان همچون سنگ بنايي براي رمز نگاري کليد عمومي لحاظ کرد. امنيت مبادله کليد ديفي – هلمن بر پايه مسئله لگاريتم گسسته (Discrete Logarithm Problem) است و بستگي به مسئله تجزيه اعداد صحيح ندارد.
روش کار پروتکل ديفي – هلمن به شرح ذيل است . آليس و باب ميخواهند توافقي روي يک کليد مخفي داشته باشند.
تماس آنها از طريق يک کانال ناامن امکان پذير است . ابتدا آنها روي يک عدد اول بزرگ p و يک ريشه اوليه به هنگ p، مانند g، با شرط توافق مي کنند. عدد p و ريشه اوليه g به صورت عمومي اعلام مي شود. پس آليس و باب از کانال ناامن خود براي حصول به اين توافق استفاده مي کنند.
اکنون يک عدد صحيح به صورت تصادفي انتخاب مي کند. او مقدار زير را محاسبه مي کند: عدد A براي باب ارسال مي شود ولي نماي a مخفي نگه داشته مي شود. باب عدد صحيح را تصادفي انتخاب مي کند. مقدار زير توسط باب محاسبه مي شود: g mod p= B
عدد B براي آليس ارسال مي شود. باب نيز يک نماي b را مخفي نگه مي دارد. براي تعيين کليد مخفي مشترک، آليس مقدار و باب نيز مقدار را محاسبه مي کنند. کليد مشترک برابر K است [٥].
٩- امنيت پروتکل ديفي - هلمن
استراق سمع کننده اسکار، اعداد p،g ،A ،B را مي فهمد ولي اطلاعي از a و b، لگاريتم هاي گسسته A و B در پايه g، ندارد. او مي خواهد از p،g ،A ،B کليد مخفي gab =K mod p را به دست آورد. اين به مساله ديفي – هلمن معروف است . اگر اسکار بتواند لگاريتم گسسته را حل کند آنگاه مساله ديفي – هلمن را نيز حل مي کند. در واقع با محاسبه لگاريتم گسسته B در پايه g،