بخشی از مقاله
*** این فایل شامل تعدادی فرمول می باشد و در سایت قابل نمایش نیست ***
توافق کليد گروهي پويا مبتني بر مجموعه هاي مندل بروت و جوليا براساس درخت دودويي
چکيده
پروتکل هاي توافق کليد گروهي، به کاربران اجازه ميدهد تا بر روي کانال هاي ناامن به يک کليد مشترک دست يابند. ارتباطات ديجيتالي گروهي در محيط ناامن اينترنت در دنياي امروزه رو به گسترش ميباشد. بر اين اساس نياز به قراردادي با امنيت بالا براي اعضا گروه داريم . در گذشته براي ارتباط اعضا گروه يک کانال محرمانه ايجاد کرده ، سپس کليد مشترک را براي اعضا ارسال مي کردند، در اين روش با توليد کليد گروه توسط يک کاربر(يا مرکز توليد کليد) و ارسال براي ديگر اعضا، امکان شنود، جعل هويت ، سرقت کليد و غيره بروي کانال محرمانه نيز وجود داشته ، که تهديدي براي کليد مشترک تمامي اعضا بود. يک پيشنهاد براي امن کردن تمام پيام هاي گروهي توليد کليد نشست توسط تمامي اعضاي گروه است . در اين مقاله يک پروتکل توافق کليد گروهي پويا مبتني بر مجموعه هاي فرکتال با ساختار درختي ارائه ميشود. در پروتکل ارائه شده از مجموعه فرکتال مندل بروت ، مجموعه فرکتال جوليا و ساختاردرخت باينري استفاده شده است . بدين معني که برگ هاي درخت معرف يک کاربر خواهد بود. در مقاله به مقايسه پروتکل پيشنهادي با ديگر پروتکل ها پرداخته - ايم . پروتکل توافق کليد گروهي پويا فرکتال ارائه شده ، ميتواند به عنوان جانشيني مناسب براي پروتکل هاي توافق کليد گروهي موجود باشد.
واژه هاي کليدي
توافق کليد گروهي، ساختار درخت دودويي، مجموعه مندل بروت ، مجموعه جوليا، فرکتال
مقدمه
رمزنگاري متقارن و رمزنگاري نامتقارن دو روش رمز کردن پيام است . روش رمزنگاري متقارن کليد رمزنگاري و رمزگشايي از يک کليد مشترک استفاده ميشود. در روش رمزنگاري نامتقارن دو کليد است يکي براي رمزنگاري داده ها که توسط يک کليد عمومي صورت ميگيرد، و ديگري براي رمزگشايي که يک کليد خصوصي است . استفاده از الگوريتم رمزنگاري نامتقارن براي عضو از نطر محاسباتي کندتر از الگوريتم هاي رمزنگاري متقارن بوده و نيز منجر به هزينه زياد محاسبات و مخابراتي است . حال استفاده از رمزنگاري متقارن بين عضو به دو روش است : ١- هر عضو کليدي دو به دو با ديگر اعضا انتخاب کرده ، که با عضو هر عضوي نياز به 1-n کليد مشترک با ديگر اعضا دارد که حافظه ي بزرگي براي نگهداري تمامي کليدهاي هر عضو نيازمند است . به همين دليل اين روش نيز موثر و کارامد نيست . ٢- استفاده از کليد گروهي مشترک به نظر راه حل مناسبي است . در اين روش ايجاد کليد مشترک گزوهي به دو دسته تقسيم شده :
١- پروتکل هاي توزيع کليد گروهي: ايجاد يک کليد مشترک براي همه اعضا توسط يک شخص يا يک مرکز امن که اطلاعات تمام کاربران گروه را نگه مي دارد٬ حال اگر کنترلر گروه با مشکل مواجه شود يا مورد حمله قرار بگيردآنگاه گروه با شکست مواجه مي شود.٢- توافق کليد گروهي: در اين روش دو يا چند کاربر شروع به توليد کليد کرده ، سپس کليد بدست آمده را براي ديگر اعضا ارسال ميکنند. در اين روش هيچ يک از کاربران به تنهايي در ايجاد کليد دخ لتي نداشته و نيز هيچ عضوي نمي تواند پيش بيني کند که کليد نشست چه خواهد بود.
کارهاي مرتبط
اولين پروتکل توافق کليد که توسط ديفي ـ هلمن ١[١] ارائه گرديد در مقابل حمله مرد ميانه مقاوم نبود به همين دليل افراد ديگر اقدام به افزايش امنيت اين پروتکل کردند. با استفاده از زوج سازي٬ ژاکس ٢ توانست پروتکل توافق کليد سه نفره را ارائه دهد[٢]. مشکل اين پروتکل نيز در مقابل حمله مرد ميانه آسيب پذير است .
پروتکل ديفي- هلمن و ژاکس را براي اعضاي گروهي مورد بررسي قرار داده با اين تفاوت که تمامي اعضا مورد تصديق قرار گيرند و براي توليد کليد گروهي به صورت حالت ثابت و ايستا تجزيه و تحليل شوند. در حالت پويا کليد گروهي با هر تغيير همچون اضافه شدن فردي يا کم شدن عضوي دوباره بدست ميآيد. توليد کليد گروهي پويا بسيار کارآمدتر از توليد کليد گروهي ثابت است و به مراتب سخت تر نيز خواهد بود.
اولين بار شرمن ٣[٣] با استفاده از درخت هاي تابع يک طرفه کليد گروهي را مطرح کرد. هر پروتکل توافق کليد دو عضوي که يک سري از ويژگيهاي مطرح شده در مقاله [٣] را برآورده کند٬ ميتواند با استفاده از درخت هاي تابع يک طرفه به پروتکل توافق کليد n- عضوي گسترش دهد. پروتکل دو عضوي ديفي- هلمن را با درخت هاي تابع يک طرفه به پروتکل توافق کليد گروهي مبتني بر ساختار درختي [٤] گسترش داده اند.
اولين پروتکل توافق کليد گروهي تصديقي توسط ردي و ديوانالا٤[٥] ارائه گرديد در اين روش پروتکل توافق کليد تصديقي دو عضوي با استفاده از درخت تابع يک طرفه به پروتکل توافق کليد گروهي گسترش داده شده است .
باروآ٥ و همکارانش [٨] نيز پروتکل توسعه يافته سه عضوي ژاکس با استفاده از ساختار درختي را به عنوان پروتکل توافق کليد مبتني بر ساختار درخ٦تي سه تايي ارائه کردند. اين پروتکل حاوي احراز هويت نبود٬ که دووتا و همکارانش اين پروتکل را با استفاده از امضاهاي چندتايي به پروتکل تصديقي تبديل کردند[٦].
در اين مقاله ٬ يک پروتکل توافق کليد گروهي پويا مبتني بر مجموعه فرکتال با ساختار درختي ارائه ميشود. اين پروتکل گسترش يافته پروتکل دوعضوي تبادل کليد براساس مجموعه مندل بروت و مجموعه جوليا است ٬ که توسط اليا و سمسودين ٧[٧] ارائه گرديد. در پروتکل ارائه شده از ساختار درختي متوازن استفاده شده است . بدين معني که هر برگ معرف يک کاربر گروه خواهد بود. اگر کاربري بخواهد به گروه اضافه و يا از گروه کم شود٬ براي بدست آوردن کليد نشست جديد نيازي نيست که تمام کاربران گروه در ساختار جديد٬ تمام محاسبه ها قبلي را بار ديگر محاسبه نمايند. از اين جهت ٬ پروتکل ارائه شده براي گروه هاي پويا بسيار مناسب ميباشد.
فرکتال ، اعداد مختلط ٨ هستند که از دو بخش واقعي ٩ و موهومي ١٠ تشکيل شده اند. ميتوان يک عدد مختلط را به عنوان يک نقطه در دستگاه اعداد مختلط نشان داد، اگر عدد مختلط را نمايش دهيم ، a بخش حقيقي عدد است که روي محور افقي و b بخش موهومي عدد است که روي محور عمودي نمايش داده ميشود. واحد عدد موهومي نيز بصورت تعريف مي شود[١٠]. در اين مقاله به دليل راحتي توليد، و داشتن همه ويژگيهاي فرکتال ، از مجموعه مندل بروت و جوليا استفاده کرديم . تنها با تغيير فرمول تکرار١١در اين برنامه ، ميتوان کليدهاي جديدي ايجاد کرد و از نظر امنيت پروتکل خود را بهبود بخشيد.
فرکتال مندل بروت [١١] (شکل ١) يک تابع درجه دوم است که از روابط بازگشتي در صفحه مختصات اعداد مختلط C ايجاد ميشود (رابطه ١).
فراکتال ها با تکرار يک فرمول معين ساخته ميشوند و نتايج يک مرحله به - عنوان ورودي مرحله بعد مورد استفاده قرار ميگيرد.
مجموعه جوليا (شکل ٢) مانند مجموعه فرکتال مندل بروت نيز مجموعه اي از نقاط در صفحه مختلط است که توسط معادله درجه دو به صورت بازگشتي تعريف شده است (رابطه ٢). تفاوت بين دو مجموعه مندل بروت و جوليا در اين است که ، نقطه شروع در معادله مجموعه مندل بروت از صفر شروع مي شود. در حاليکه در مجموعه جوليا نقطه شروع از مقداري غير صفر آغاز مي شود.
شکل ٢: مجموعه فرکتال جوليا شکل ١: مجموعه فرکتال مندل بروت اگر نقطه آغازين مجموعه جوليا، c، از درون مجموعه مندل بروت انتخاب شود مجموعه جوليا يکپارچه و به هم چسبيده خواهد شد. اگر c خارج از مجموعه مندل بروت انتخاب شود مجموعه جوليا پيوسته نميشود.
٢- توافق کليد دونفره مبتني بر مند بروت و جوليا
محمد احمد عليا١٢ و بن سمسودين ١٣ در سال ٢٠٠٧ توافق کليد دو نفره مبتني بر مجموعه مندل بروت و جولبا را ارائه دادند[٧]. در اين الگوريتم از توابع خاص Mandelfn و Juliafn که به ترتيب با رابطه هاي ٣ و ٤ نشان داده شده اند استفاده ميشود. مراحل اين الگوريتم در شکل ٣ نشان داده شده است .
اولين گام در اين الگوريتم توليد مقادير خصوصي و مقادير عمومي با استفاده از تابع مندل بروت (رابطه ٣) و تابع جوليا(رابطه ٤) است . همانطور که در ابتدا اشاره شد پروتکل فرکتال شامل يک فرستنده (آليس ) و يک گيرنده (باب ) است . گيرنده بايد کليد عمومي خود را با استفاده از کليد خصوصي خود توليد کرده و براي فرستنده ارسال کند. فرستنده نيز کليد عمومي خود را با استفاده از رابطه ٣ توليد کرده و براي گيرنده ميفرستد.
همانطور که در شکل ٣ ]٧[ نشان داده شده است Z nd کليد عمومي محاسبه شده ي گيرنده است که توسط رابطه ٥ محاسبه شده است (مرحله ١ شکل ٣).
مقادير d و n کليد خصوصي گيرنده و مقادير e و k نيز کليد خصوصي فرستنده هستند که n و k تعداد تکرار فرمول ها و d وe يک عدد مختلط هستند. c نيز يک عدد مختلط ثابت و عمومي و مشترک بين فرستنده و گيرنده است . همچنين فرستنده کليد عمومي خود را با استفاده از تابع Mandelfn توليد مينمايد. تابع Mandelfn براي فرستنده در رابطه ٦ نشان داده شده است .
بعد از تبادل کليدهاي عمومي و اجـرا کـردن تـابع جوليـا، هـر دو طـرف بـاب و آلـيس بـه يـک مقـدار سـري يکساني خواهند رسيد. هر دوطرف از رابطه ٧ بر اساس خصوصيات فرکتال به کليد مشترک ميرسند.
خاصيت بينظمـي توابـع فرکتـال ، امنيـت پروتکـل ارائـه شـده را تضمین نماید .
توافق کليد گروهي پويا مبتني بر مجموعه هاي مندل بروت و جوليا
اين بخش به معرفي پروتکل پيشنهادي مي پردازد. در اين پروتکل از ساختار درخت دودويي استفاده ميکنيم . يک درخت دودويي يک ساختمان داده درخت است که در آن هر گره حداکثر دو گره فرزند دارد. هر کاربر به طور منطقي به يک گره برگ ١٤ از درخت دودويي مرتبط ميشود. براي اين که هر گره درخت به طور منحصر به فرد مشخص شود از برچسب >l,v< استفاده ميشود که سطح درخت و h نيز ارتفاع درخت T است و موقعيت گره در اين سطح است . توجه داريم که در درخت هاي دودويي خطي ارتفاع درخت رابطه خطي با تعداد کاربران دارد، درحاليکه در درخت هاي دودويي متوازن h لگاريتمي ميباشد. در اين ساختار اعضا تشکيل يک گروه را ميدهند که اين گروه داراي يک مدير گروه ١٥ براي مديريت رفتار و ارسال کليد توافقي گروه براي تمام اعضا مجاز است . افراد در ساختار درختي در برگ ها قرار گرفته و فقط با همزاد١٦ خود در ارتباط هستند. هر شخص داراي دو کليد خصوصي بوده و بخشي از کليد خصوصي کل گروه است . همچنين کل گروه داراي يک کليد عمومي است . نوآوري اين طرح در استفاده از ساختار درخت دودويي و استفاده از مجموعه هاي فرکتال براي دست يابي به کليد گروهي است . اين طرح داراي ٤ رويه آماده سازي، پيوستن به گروه ، ترک کردن گروه و توليد کليد است .
٣-١ آماده سازي
اين رويه شامل مراحل زير است :
الف ) توليد پارامترها: در اين بخش نشان ميدهيم پارامترهاي لازم براي بدست آوردن کليد مشترک کدامند و همچنين چگونه هر کاربر ميتواند در مرکز توليد کليد ثبت نام کند.
پارامتر های سیستم را بايد در نظر داشته باشيم که است و تابع مندل بروت با رابطه و تابع جوليا با رابطه استفاده ميشوند.
ب ) توليد کليدهاي خصوصي و عمومي کاربران : ابتدا کاربر ui مقادير ni و ei را به عنوان کليد خصوصي خود انتخاب ميکند که ei بايد جزو مجموعه مندل بروت باشد. سپس با استفاده از مقدار عمومي c، که عدد مختلطي در مجموعه مندل بروت است ، به توليد کليد عمومي خود ZMi ميپردازد.
ج ) مراحل توافق کليد: در اين بخش ٬ نشان ميدهيم که چگونه کاربران مجاز براي محاسبه کليد نشست گروهي با يکديگر همکاري ميکنند. شکل (٤) يک مثال از ساختار درختي دوتايي با ٤ کاربر است .
فرض کنيد n کاربر در گروه قرار دارد٬ هر کاربر کليدهاي خصوصي و عمومي را دارند. کاربران در هر بار اجراي پروتکل اعداد تصادفي را به عنوان کليد خصوصي خود انتخاب ميکنند.
روند اجرا به صورت پروتکل ١ است :