PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : رمزنگاري و كاربردهاي آن



Ehsan M
24th March 2012, 07:06 PM
رمزگذاري عبارت است از تبديل داده‎ها به نحوي كه خواندن آنها بدون كليد غيرممكن باشد. رمزگذاري و رمزگشايي عموماً به اطلاعات محرمانه‎اي كه كليد ناميده مي‎شود نياز دارند. بعضي كاربردهاي ساده رمزنگاري عبارتند از ارتباطات مطمئن، شناسايي و احراز درستي چيزي. كاربردهاي پيچيده‎تر آن شامل سيستم‎هاي تجارت الكترونيك، گواهي‎كردن، ارسال نامه الكترونيك محرمانه و دسترسي راه دور به رايانه مي‎شوند.

انواع سيستم‎هاي رمزنگاري
دو نوع سيستم رمزنگاري وجود دارد:


كليد ـ سري يا متقارن
كليد ـ عمومي يا نامتقارن

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

رمزنگاري متقارن و نامتقارن
چالش عمده در رمزنگاري متقارن آن است كه فقط فرستنده و گيرنده بايد از كليد محرمانه آگاه باشند و هيچكس ديگر نبايد آن را بداند.
توليد، ارسال و نگهداري كليدها را مديريت كليد مي‎نامند. از آنجا كه تمام كليدها در رمزنگاري كليد ـ سري بايد محرمانه باشند فراهم‎كردن يك مديريت مطمئن براي كليدها به خصوص در سيستم‎هاي باز با تعداد زيادي كاربر، مشكل است.
براي حل مشكل مديريت كليد در سال 1976 مفهوم رمزنگاري كليد ـ عمومي ‎(نامتقارن) معرفي شد. اين روش داراي دو كاربرد عمده است.


رمزنگاري
امضاي ديجيتال

در اين سيستم هر شخص يك جفت كليد دريافت مي‎كند كه يكي كليد عمومي ‎نام دارد و ديگري كليد اختصاصي. كليد عمومي‎ براي اطلاع عموم منتشر مي‎شود ولي كليد اختصاصي محرمانه نگه‎داشته مي‎شود. به اين ترتيب ديگر نيازي نيست كه فرستنده و گيرنده از يك كليد محرمانه مشترك استفاده كنند، بلكه تمام ارتباطات از طريق كليد عمومي‎ انجام مي‎شود و نيازي به ارسال كليد اختصاصي نيست. در اين سيستم احتياجي به برقراري يك كانال ارتباطي مطمئن نيست، بلكه تنها لازم است كه كليدها به روش مطمئني به كاربرها اختصاص يابند.
در سيستم رمزنگاري نامتقارن كليد اختصاصي داراي يك رابطه رياضي با كليد عمومي‎ است. بنابراين با به‎دست‎آوردن كليد اختصاصي از روي كليد عمومي‎ مي‎توان اين سيستم را مورد حمله قرار داد. روش متداول براي مقابله با اين مشكل آن است كه مسأله به‎دست‎آوردن كليد اختصاصي از روي كليد عمومي‎ را تا حد امكان مشكل كنيم. به عنوان مثال بعضي سيستم‎ها مانند RSA بر اساس تجزية يك عدد بزرگ به عوامل اول طراحي شده‎اند.


مثالي ساده از امضاي ديجيتال:
براي امضاي يك نامه، A محاسبه‎اي انجام مي‎دهد كه ورودي‎هاي آن كليد اختصاصي A و متن نامه مي‎باشند. خروجي اين محاسبه امضاي ديجيتال ناميده مي‎شود و به نامه پيوست مي‎شود. براي اطمينان از صحت امضاء B محاسبه‎اي انجام مي‎دهد كه ورودي‎هاي آن شامل متن نامه، امضاي پيوست و كليد عمومي ‎A هستند. اگر خروجي حاصل طبق يك رابطه رياضي از قبل تعريف شده درست باشد، امضاء معتبر است در غير اين صورت يا امضاء جعلي است يا متن نامه تغيير يافته است.

مزايا و معايب روش‎هاي مختلف رمزنگاري
مزيت اصلي رمزنگاري كليد ـ عمومي ‎افزايش امنيت و سهولت كار با آن است. در اين روش اصلاً لازم نيست كه كليدهاي اختصاصي ارسال شوند يا در اختيار شخص ديگري قرار گيرند. برعكس در روش كليد ـ سري (متقارن) كليدهاي محرمانه بايد ارسال شوند.
ديگر مزيت عمده سيستم‎هاي كليد ـ عمومي ‎آن است كه امضاهاي ديجيتال غيرقابل انكار خواهند بود. احراز هويت از طريق سيستم‎هاي كليد ـ ‌سري به رمز محرمانه مشترك احتياج دارد و بعضي مواقع نيز بايد به شخص ثالث اعتماد كند. در نتيجه ارسال‎كننده مي‎تواند ادعا كند كه رمز سري مشترك توسط يكي از طرف‎هاي مربوط دستكاري شده است.
برعكس در احراز هويت به روش كليد ـ عمومي ‎اين نوع انكار غيرممكن است و هر كاربر منحصراً مسئول حفاظت از كليد اختصاصي‎اش است.
يك اشكال روش كليد ـ عمومي‎ براي رمزنگاري، كم‎بودن سرعت آن است. در بيشتر موارد از هر دو روش به صورت توأم استفاده مي‎شود تا از مزاياي هر دو استفاده شود.


امضاي ديجيتال و احراز هويت
«احراز درستي» فرآيندي است كه طي آن اطلاعات مشخصي ثابت و تأييد مي‎شود.
در بعضي موارد لازم است منشاء يك سند، هويت فرستنده، تاريخ و زماني كه يك متن ارسال و / يا امضا‎شده، هويت يك كاربر رايانه و... تأييد شود.
«امضاي ديجيتال» يك ابزار رمزنگاري است كه از طريق آن انجام موارد فوق امكان‏پذير مي‎شود. امضاي ديجيتال يك متن، اطلاعاتي است كه بر مبناي خود متن و كليد اختصاصي امضا‎كننده به‎دست مي‎آيد. اين اطلاعات با استفاده از تابع در هم سازي و رمزنگاري توسط كليد اختصاصي ايجاد مي‎شود.
امضاي ديجيتال و امضاي دست‎نويس هر دو متكي بر اين واقعيت هستند كه پيداكردن دو نفر با يك امضا تقريباً غيرممكن است.

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

مديريت كليد
مديريت كليد شامل توليد، توزيع و نگهداري مطمئن كليدهاي مورد استفاده در رمزنگاري است. روش‎هاي مطمئن مديريت كليد بسيار با اهميت هستند. در سيستم‎هاي كليد ـ عمومي ‎(نامتقارن) اغلب مديريت كليد مورد حمله قرار مي‎گيرد تا الگوريتم رمزنگاري.
كاربران بايد بتوانند زوج كليد مناسب براي نيازهاي خود را از راه مطمئني به دست آورند. همچنين بايد روشي براي جستجوي كليد عمومي‎ ديگران و منتشركردن كليد عمومي‎ يك كاربر وجود داشته باشد. علاوه بر اين بايد روش ضابطه‎مندي براي به‏دست‎آوردن كليد عمومي‎ افراد موجود باشد در غير اين صورت يك شخص متقلب مي‎تواند فهرست كليدهاي عمومي ‎را تغيير دهد يا هويت شخص ديگري را جعل كند. براي اين منظور از گواهي‎نامه استفاده مي‎شود. گواهي‎نامه‎ها بايد غير قابل جعل بوده و صدور آنها از راه‎هاي مطمئن و غير‏قابل نفوذ انجام گيرد. به ويژه صادركننده گواهي‎نامه بايد قبل از صدور گواهي براي اشخاص، هويت آنها را احراز كند.
اگر كليد اختصاصي كسي گم شود يا آسيب ببيند ديگران بايد از اين موضوع آگاه شوند تا از آن به بعد متن‏ها را با كليد عمومي ‎نامعتبر امضا نكنند و نامه‎هاي امضاء شده با كليد اختصاصي نامعتبر را نپذيرند. كاربران بايد كليدهاي اختصاصي را در جاي امني نگهداري كنند به‎طوري كه هيچ نفوذگري نتواند آنها را به دست آورد و در عين حال براي استفاده مجاز بايد به آساني در دسترس باشند.
مدت زمان اعتبار كليدها بايد محدود باشد ولي تاريخ انقضاء بايد مناسب بوده و از كانال معتبري اعلام شود.

دريافت و استفاده از زوج كليد
هر شخصي كه بخواهد نامه‎هاي امضا شده بفرستند يا پيام‎هاي رمزشده دريافت كند بايد يك زوج كليد داشته باشد. هر شخص مي‎تواند بيش از يك زوج كليد داشته باشد.
در عمل توصيه مي‎شود كه از زوج كليدهاي جداگانه‎اي براي امضاكردن و دريافت پيام‏هاي رمزشده استفاده شود. به عنوان مثال شخصي ممكن است يك زوج كليد براي كارهاي مربوط به شغلش داشته باشد و از زوج كليد ديگري براي كارهاي شخصي استفاده كند.
هويت‎هاي ديگر (به جز اشخاص حقيقي) نيز مي‎توانند زوج كليد داشته باشند. هويت‎هاي الكترونيكي مانند مودم‏ها، ايستگاه‎هاي كاري، كارگزارهاي وب، چاپگرها و هويت‎هاي اداري از قبيل شركت‏ها، ميز پذيرش هتل و دفتر ثبت نام دانشگاه از اين قبيل هستند.
هر كاربر يا شخصاً مي‏تواند زوج كليد خودش را ايجاد كند يا مطابق سياست محلي، يك مسئول امنيتي زوج كليد را براي همه كاربران ايجاد مي‏كند.
هنگامي‎كه يك زوج كليد ايجاد شد، كاربر بايد آن را در يك سازمان مركزي كه متصدي صدور گواهي (CA) ناميده مي‏شود، ثبت كند. CA گواهي‎نامه‎اي به كاربر مي‎دهد كه اعتبار كليد عمومي‎ و ديگر اطلاعات همراه آنرا تأييد مي‎كند.

گواهي‏نامه چيست و چگونه مورد استفاده قرار مي‏گيرد
گواهي‎نامه يك سند ديجيتالي است كه تعلق يك كليد عمومي ‎را به يك شخص يا موجوديت ديگر، تأييد مي‏كند. صحت اين ادعا كه يك كليد عمومي‎ معين به شخص خاصي تعلق دارد، از اين روش ثابت مي‏شود. گواهي‎نامه‎ها اجازه نمي‎دهند كه كسي با استفاده از يك كليد جعلي، خود را به جاي شخص ديگري جا بزند.
در بعضي موارد لازم است زنجيره‏اي از گواهي‏نامه‎ها تشكيل شود كه هر يك قبلي را تأييد مي‏كند تا جايي كه طرفين از هويت مورد نظر اطمينان حاصل كنند.
در ساده‎ترين حالت گواهي‎نامه‎ها شامل يك كليد عمومي ‎و نام كسي كه آن كليد به او تعلق دارد، هستند. تاريخ انقضا، نام متصدي صدور گواهي و شماره سريال نيز در گواهي‎نامه ذكر مي‎شود. رايج‎ترين قالب براي گواهي‎نامه‎ها توسط استاندارد بين المللي ITU-TX.509 تعريف شده است.
مهمترين قسمت گواهي‎نامه امضاي ديجيتالِ متصدي صدور گواهي است. اطلاعات ديگري نيز ممكن است در آن موجود باشد.
گواهي‎نامه‎ها براي حصول اطمينان از صحت كليد عمومي‎ مربوط به آن را كنترل كرد. مطمئن‎ترين راه براي احراز هويت، همراه‎كردن يك يا چند گواهي‎نامه‎ها با هر پيام امضا شده، مي‏باشد. گيرنده پيام گواهي‏ها را با استفاده از كليد عمومي‎CA تأييد مي‎كند و پس از اطمينان از صحت كليد عمومي‎ فرستنده، امضاي پيام را وارسي مي‏كند. ممكن است دو گواهي‎نامه يا بيشتر همراه پيام باشد كه زنجيره‎اي را تشكيل مي‎دهند كه در آن هر گواهي‎نامه، گواهي قبلي را تأييد مي‎كند. در انتهاي سلسله گواهي‎ها يك CA سطح بالا وجود دارد كه بدون نياز به گواهي از جانب CA ديگر مورد اعتماد است . كليد عمومي ‎CA سطح بالا بايد در دسترس عموم قرار داشته باشد . به عنوان يك قاعده كلي، زنجيره گواهي‎نامه‎ها بايد تاجايي ادامه پيدا كند كه آخرين حلقه زنجيره گواهي‎ها براي گيرنده شناخته شده و قابل اعتماد باشد.

مرجع صدور و روش صدور گواهي‎نامه‎ها
گواهي‎نامه‎ها توسط متصدي صدور گواهي‎نامه (CA) صادر مي‎شوند . (CA) يك اداره مركزي قابل اعتماد است كه هويت اشخاصي كه براي آنها گواهي‎نامه صادر مي‎كند و كليد مربوط به آنها را ضمانت مي‏كند.
صدور گواهي‎نامه مي‎تواند به صورت زير باشد. شخص B زوج كليد خودش را ايجاد مي‎كند و كليد عمومي‎ را به همراه مدارك اثبات هويت براي CA مي‎فرستد. CA هويت B را كنترل مي‎كند و براي اطمينان از اينكه اين درخواست واقعاً از طرف B آمده و كليد عمومي‎ هنگام ارسال تغيير نكرده است اقدامات لازم را انجام مي‎دهد، سپس گواهي‎نامه‎اي صادر مي‎كند كه ارتباط بين B و كليد عمومي‎اش را تأييد مي‏كند.
همچنين ممكن است زنجيره‏اي از گواهي‎نامه‎ها ضميمه شوند كه كليد عمومي‎ CA را تأييد مي‎كنند. B مي‎تواند در صورت لزوم براي اثبات درستي كليد عمومي‎اش دنباله گواهي‎نامه‎ها را ارائه كند.
از آنجا كه CA بايد هويت افراد را كنترل كند، بيشتر سازمان‎ها براي كاركنانشان به عنوان CA عمل مي‏كنند. همچنين متصدياني وجود دارند كه براي اشخاص حقيقي مستقل گواهي‎نامه صادر مي‎كنند.

زيرساخت كليد عمومي (PKI)
يك PKI شامل پروتكل‎ها، سرويس‎ها و استانداردهايي است كه از كاربرد رمزنگاري كليد عمومي ‎(نامتقارن) پشتيباني مي‎كنند. اين اقدامات از طريق متصدي صدور گواهي (CA) و متصدي ثبت (RA) براي مديريت كليدهاي عمومي‎ انجام مي‎گيرد اما فقط به عمليات رمزنگاري توسط كليدها محدود نمي‏شود.
از جمله سرويس‎هايي كه در يك PKI ارائه مي‎شوند موارد زير است :


ثبت كليد : صدور گواهي‎نامه جديد براي يك كليد عمومي‎
ابطال گواهي‎نامه : حذف گواهي‎نامه‎اي كه قبلاً صادر شده
انتخاب كليد : به‏دست‎آوردن كليد عمومي‎ مورد نياز
ارزيابي قابليت اعتماد: تعيين اينكه آيا يك گواهي‎نامه معتبر است و مجاز به انجام چه عملياتي است .

بازيابي كليدها نيز به عنوان يكي از خدمات PKI پيشنهاد شده است .
در حال حاضر هيچ PKI سراسري منحصر به فردي وجود ندارد. چند PKI مختلف با درجات مختلفي از سازگاري در حال تكامل هستند. روش‎ها و سازوكارهاي به‎كاررفته در PKI، باز و قابل ارتقاء هستند و در عين حال نيازهاي خاص كاربران را نيز برآورده مي‎كنند. به عنوان مثال اين موضوع كه در PKI جهاني چندين CA «سطح بالا» يا «ريشه» وجود خواهند داشت مورد پذيرش عمومي است، هر چند كه در يك PKI محلي شايد فقط يك CA سطح بالا وجود داشته باشد. بنابراين، پروتكل‎ها با توجه به تعيين ريشه‎هاي مورد اعتماد براي يك كاربر، تعريف مي‎شوند. تلاش براي تعريف PKI در دولت‎ها و سازمان‎هاي استاندارد جهاني در جريان است.

پاكت ديجيتال
پاكت ديجيتال شامل يك پيام رمز شده با رمزنگاري كليد سري و يك كليد محرمانه رمز شده مي‎باشد.
يكي از ويژگي‎هاي جالب اين روش آن است كه طرفين مي‎توانند به دلخواه كليد سري را تغيير دهند. حسن اين كار آن است كه پيدا كردن كليدهايي كه براي مدت زمان كمي‎استفاده شده‎اند مشكل‎تر است .
در عمل، اغلب سيستم كليد عمومي‎ RSA به همراه يك سيستم كليد سري مانند DES براي رمزنگاري پيام‎ها توسط پاكت ديجيتال به كار مي‎روند.

پول الكترونيك
پول الكترونيك يا نقدينگي ديجيتال اصطلاحي است كه هنوز تقريباً مبهم و تعريف نشده است . مبادلات الكترونيك كه منجر به انتقال پول از يك شخص به شخص ديگر مي‎شود توسط پول الكترونيك انجام مي‎گيرد. پول الكترونيك مي‎تواند به صورت اعتبارييا استقراضي مي‎باشد. نقدينگي ديجيتال به خودي خود مانند يك ارز خارجي است و مبادلات با نقدينگي ديجيتال را مي‎توان شبيه مبادلات بازار ارز تصور كرد. اين بدان علت است كه قبل از هر كاري بايد مقداري پول به نقدينگي ديجيتال تبديل شود. فرآيند تبديل مانند خريد ارز خارجي است .
نقدينگي ديجيتال در تعريف دقيق خود ممكن است به صورت شناخته‎شده يا ناشناس باشد. در حالت ناشناس هويت صاحب نقدينگي مشخص نمي‎شود.
در طرح‏هايي كه صاحب پول، شناخته مي‎شود از روش‏هاي متداول امضاي ديجيتال استفاده مي‎شود. روش‏هاي ناشناس، معادل الكترونيكي پول نقد هستند، در حالي كه روش‏هاي همراه با شناسايي معادل الكترونيكيِ كارت اعتباري يا استقراضي هستند.

ثبت زمان ديجيتال
هنگام مشاهده يك متن ديجيتال دو سؤال مي‎توان پرسيد:



نويسنده اين متن كيست و چه كسي آن را تأييد مي‎كند؟
اين متن در چه زماني ايجاد شده است ؟


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


گاهي لازم است كه رابطه بين يك شخص و كليد عمومي‎اش باطل شود. بنابراين رابطه شخص كليد بايد از نظر زماني محدود باشد و فرايند تأييد امضا بايد كنترل كند كه در زمان امضاء كليد عمومي‎ امضا‏كننده معتبر بوده است يا نه. بنابراين لازم است كه متن و امضاي آن توسط يك سرويس ثبت زمان ديجيتال گواهي شوند.
حالتي را در نظر بگيريد كه امضاء‌كننده متن مي‎خواهد بعداً امضاي خود را انكاركند. با گزارش دروغ در مورد لغو كليد اختصاصي، تمام امضاهاي او زير سؤال مي‎روند و قادر است هر امضائي كه بخواهد انكار كند. اما اگر متن مورد نظر به همراه امضايش ثبت زمان ديجيتال شده باشد (همچنين گزارش‏هاي ابطال كليدها هم تاريخ داشته باشند) آنگاه از اين طريق نمي‎توان منكر امضا شد. براي جلوگيري از انكار امضاي ديجيتالِ اسناد مهم، اين روش پيشنهاد شده است .


بازيابي كليد
يكي از موانع عمده استفاده از رمزنگاري در بعضي زمينه‎ها آن است كه اگر كليد به نحوي مفقود شود تمام داده هاي رمزنگاري شده با آن كليد غير قابل استفاده مي‎شوند.
بازيابي كليد اصطلاحي كلي است كه شامل راه‎هاي گوناگون «دسترسي اضطراري» به داده‎هاي رمزنگاري شده مي‏شود.
يكي از راه‎هاي متداول، آن است كه كليد رمزگشايي را به چند قسمت تقسيم كنيم و هر قسمت را در اختيار يك شخص مورد اعتماد قرار دهيم . به اين روش كليد مشروط مي‎گويند.
در مواقع ضروري با حضور تمام اين اشخاص مي‎توان كليد را بازسازي كرد.
روش ديگر كه بسته‎بندي كليد نام دارد به اين ترتيب است كه ابتدا داده‎ها را توسط كليد جلسه رمزنگاري كرده و سپس كليد جلسه را توسط كليد عمومي ‎شخص مورد اعتماد رمزنگاري مي‎كنيم . كليد جلسه رمز‎شده به همراه متن رمزنگاري شده ارسال مي‎شود و بنابراين در صورت لزوم شخص مورد اعتماد قادر به رمزگشايي خواهد بود.

چرخه حيات يك كليد
كليدها به دلايل متعدد داراي طول عمر محدود هستند. مهمترين دليل آن محافظت در برابر رمزيابي است. اگر احتمال داده شود كه كليدي به دست شخص غير مجاز افتاده، آن كليد آسيب ديده تلقي ‎شده و استفاده از آن بايد متوقف شود.
طول كليد توصيه شده بستگي به مدت عمر آن دارد. در روش RSA كليدهاي موقتي كه يك روز يا كمتر اعتبار دارند ممكن است به طول 512 بيت باشند. كليدهايي كه براي امضاي قراردادهاي بلندمدت به‏كار مي‎روند بايد به طول 1024 بيت يا بيشتر باشند.
كمتر كردن آسيب‎هاي ناشي از يك كليد آسيب‎ديده از ديگر دلايل محدودكردن طول عمر كليد مي‎باشد. زيرا اگر سارق كليد «غير فعال» باشد احتمال كشف سرقت كليد، ‌كم است.
مراحل مختلف چرخه عمر يك كليد به شرح زير است:


ايجاد كليد و ثبت آن
توزيع كليد
فعال‎سازي و غيرفعال‎سازي كليدها
جايگزيني و روز آمدكردن كليدها
ابطال كليد
انقضاي كليد : از بين‎بردن يا بايگاني‎كردن آن


مبادلات مطمئن الكترونيكي (SET)
Visa و Mastercard به طور مشترك پروتكل SET را به عنوان روشي مطمئن و به‏صرفه براي انجام مبادلات روي شبكه‎هاي باز طراحي كرده اند.
SET از روش كليد ـ سري DES براي رمزنگاري داده‎هاي با حجم زياد استفاده مي‎كند و براي امضاهاي ديجيتال و رمزنگاري كليدها و شماره حساب‎ها از روش كليد ـ عمومي‎ RSA استفاده مي‎كند.





نام و نام خانوادگی: علی اکبر سرداری
پست سازمانی : کارشناس سخت افزار
آدرس : تهران – خیابان شریعتی-بالاتر از دوراهی قلهک- روبروری ایستگاه یخچال –مجتمع تجاری قلهک- پلاک 1490 –سازمان زندانها-طبقه هفتم – دفتر نوسازی و تحول اداری
تلفن: 22608136
فکس: 22604096

BaAaroOoN
24th March 2012, 11:07 PM
بهتون پیشنهاد میکنم،در این رابطه یه گروه تشکیل بدین!مام عضو میشیم![nishkhand]
قابل توجه آقایون سایت...!!!!!!!!!!
مژده مژده
شنیدم پسرایی که در این زمینه فعالن،معاف از سربازی میشن!

Ehsan M
25th March 2012, 12:10 AM
بهتون پیشنهاد میکنم،در این رابطه یه گروه تشکیل بدین!مام عضو میشیم![nishkhand]
قابل توجه آقایون سایت...!!!!!!!!!!
مژده مژده
شنیدم پسرایی که در این زمینه فعالن،معاف از سربازی میشن!

معافیو جدی گفتی؟؟؟؟[nishkhand]

من رمزنگاری و امنیت اطلاعاتو خیلی دوست دارم [golrooz]

BaAaroOoN
25th March 2012, 12:19 PM
تا حالا انقد جدی نبودم!آره....،اگه خیلی تو این کار ماهر باشی،از طرف سازمان های مربوطه جذبت میکنن و تازه معافت هم میکنن....![nishkhand]

Ehsan M
25th March 2012, 12:47 PM
تا حالا انقد جدی نبودم!آره....،اگه خیلی تو این کار ماهر باشی،از طرف سازمان های مربوطه جذبت میکنن و تازه معافت هم میکنن....![nishkhand]

خیلیی ممنون.[cheshmak]
این داستان معافیم بدبختی شده واسه ما پسراا[nishkhand]

BaAaroOoN
25th March 2012, 12:51 PM
اونقدهام بد نیس!یه تجربس واسه خودش!دوستای این دوره هیچ جا پیدا نمیشن...!

Ehsan M
25th March 2012, 12:59 PM
اونقدهام بد نیس!یه تجربس واسه خودش!دوستای این دوره هیچ جا پیدا نمیشن...!

اون که آره ولی سخته خب[nishkhand]

تنها راه چاره برای عقب انداختنش درس خوندن و ادامه دادن متوالیه چاره دیگه ایم که نیست ولی آخرش چی دکترام بگیری باید بری دیگه [nishkhand]

اصلا چرا شما دخترا نمیرین سربازی؟؟؟هااااااا؟؟[nishkhand]

BaAaroOoN
25th March 2012, 01:05 PM
اگه بذارن چرا که نه....!!!!!!!!!شما پسرا به جای اینکه خوبیای سربازی و ببینین،فقط بدیاشو میبینید

Ehsan M
25th March 2012, 01:09 PM
اگه بذارن چرا که نه....!!!!!!!!!شما پسرا به جای اینکه خوبیای سربازی و ببینین،فقط بدیاشو میبینید

جدا میری اگه بشه؟خداییش میری؟؟[taajob][cheshmak]

من که بالاخره باید برم پس لااقل واسه خودم ازش یه کوه درست نکنم تا واسم سخت نشه ، به قول معروف زندگی رو هر جور بگیری همون جوریه [nishkhand]

BaAaroOoN
25th March 2012, 01:14 PM
آره که میرم!
حالا شدی یه پسر خوب[esteghbal]

Ehsan M
25th March 2012, 01:17 PM
ایول بابا [nishkhand]

دیگه دیگه [khejalat][khejalat]

BaAaroOoN
25th March 2012, 01:19 PM
هرکی خدای نکرده خدای نکرده(!) ندونسته بیاد اینجا فک میکنه بحث راجع به سربازیه[nishkhand]
ببین چه جوری بحث علمی رو ه یه بحث دیگه تبدیل کردی شما...!!![khande]

Ehsan M
25th March 2012, 01:22 PM
والللااااا[nishkhand]
خب من ادامه ی مطالب رمز نگاری و امنیت اطلاعات مربوط به این بحثو تو همین تاپیک میزارم [cheshmak]

Ehsan M
25th March 2012, 01:26 PM
نرم افزار طراحی و تحلیل الگوریتم های رمز نگاری تارا 3



چکیده
نرم افزار تارا به طراحان و تحلیل گران الگوریتم های رمز نگاری این امکان را می دهد که بتوانند به راحتی با استفاده از اجزای پایه( مانند NLFSR, LFSR, P-Box، عملیات منطقی NOT, XOR, OR, AND انتقال، چرخش و... )، توابع متداول رمز نگاری (توان رسانی، معکوس کننده، و... ) و همچنین اجزای مرکب جدید، (قابل ساخت با زبان سطح بالا توسط کاربر)، به سرعت الگوریتم های مورد نظر خود را طراحی و یا رفتار الگوریتم طراحی شده را در برابر حالت های مختلف بررسی نمایند
مزیت اصلی این ابزار، آن است که طراح و تحلیل گر را از برنامه نویسی و پیاده سازی سطح پایین بی نیاز و به رمز نگار کمک می کند تا مراحل طراحی و تحلیل، پروژه خود را عملاً آزمایش کند

قابلیت ها
قابلیت به کارگیری اجزای پایه، جهت طراحی رمز های بلوکی و جریانی
قابلیت اضافه کردن و به کار گیری اجزای مرکب جدید
امکان بزرگ نمایی، نسخه برداری، ویرایش، گزارش گیری و ذخیره سازی پروژه ی در حال ساخت
واسط بصری و بسیار کاربر پسند
تعریف S-Box و P-Box به دو صورت دستی و از طریق فایل
تولید متن آشکار به سه صورت تصادفی، مقدار ثابت و از طریق فایل
بی نیاز کردن طراح از برنامه نویسی سطح پایین

کاربردها
طراحی الگوریتم های رمز بلوکی (SPN، فیستل، ترکیبی و )
بررسی و تحلیل الگوریتم های رمز بلوکی (SPN، فیستل، ترکیبی و )
طراحی و تحلیل الگوریتم های رمز جریانی (با LFSR، S-Box و )
انجام پایان نامه های دانشگاهی در زمینه ی طراحی و تحلیل الگوریتم های رمز نگاری

Ehsan M
25th March 2012, 01:29 PM
·رمزهای جانشینی در رمز جانشینی هر حرف یا گروهی از حروف به جای حرف یا گروهی از حروف دیگر قرار می گیرد تا پنهان سازی صورت گیرد.یکی از قدیمی ترین رمز های شناخته شده رمز سزار نام دارد که به ژولیوس سزار نسبت داده می شود. در مثال ها متن ساده با حروف کوچک ومتن رمزی با حروف بزرگ مشخص می شود. در شکلی از رمز سزار میتوان حروف متن رمزی را به جای سه حرف- kحرف جابه جا کرد. در این حالت k کلیدی برای روش عمومی است که در آن حروف به طور چرخشی جابه جا می شوند و ممکن است رمز سزار اهالی کارتاژ را فریب دهد ولی از زمان به این طرف کسی را فریب نداده است. بهبود بعدی این است که هر یک از نماد های متن ساده (هر 26حرف)به کاراکتر دیگری نقش شود. A b c d e f g h I j k l m n o p q r s t u v w x y z متن ساده Q W E R T Y U I O P A S D F H J K L Z X C V B N M متن رمزی این سیستم کلی جانشینی تک حرفی نام دارد و کلید آن رشته 26 حرفی متناظر با کل حروف الفبا است. با با کلید فوق متن ساده attack به متن رمزی QZZQEA
تبدیل می شود.
· رمزهای جابه جایی رمز های جانشینی ترتیب نمادهای متن ساده را حفظ می کنند ولی آن ها را تغییر می دهند. رمزهای جابه جایی ترتیب حروف را عوض می کنند ولی آنها را تغییر نمی دهند. برای شکستن رمز جابه جایی تحلیل گر رمز باید بداند که با رمز جابه جایی سرو کار دارد. با مشاهده فراوانی N,I,D,A,T,E وغیره.به راحتی می توان تشخیص داد که آیا با الگوی عادی متن ساده مطابقت می کند یا خیر.اگر اینطور باشد این رمز رمز جابه جایی است. زیرا در چنین رمزی هر حرف نشان دهنده خودش است. بعضی از رمز های جابه جایی بلوکی با طول ثابت را به عنوان ورودی قبول می کنند وبلوکی با طول ثابت را به عنوان خروجی ایجاد می کنند. این رمز ها را می توان با ارائه لیستی که ترتیب خروجی کاراکترها را مشخص می نماید توصیف کرد. افزونگی یکباره ایجاد رمز غیرقابل کشف بسیار ساده است , این تکنیک چندین دهه است که شناخته شده است. ابتدا رشته بیتی تصادفی را به عنوان کلید انتخاب نمایید. سپس متن ساده را به رشته بیتی تبدیل کنید. مثلا از نمایش اسکی استفاده نمایید سپس عملگر XORرا برروی این دو رشته بیتی به صورت بیت به بیت اجرا کنید. متن رمزی حاصل قابل کشف نیست زیرا هر متن ساده ی ممکنی می تواند با آن مطابقت داشته باشد. متن رمزی هیچ اطلاعاتی به تحلیل گر رمز نمی دهد . در نمونه های بزرگی ازمتن ساده هر حرف یا دو تایی ها یا سه تا یی ها با تعداد مساوی تکرار می شوند. این روش افزونگی یکباره نام دارد که صزف نظر از توانایی محاسباتی مهاجمین در مقابل تمام حملات فعلی و آینده امن است. علتش به تئوری اطلاعات مربوط می شود: هیچ اطلاعات ساده ای در پیام وجود ندارد زیرا احتمال وجود متن های ساده ای به هر طول یکسان است. افزونگی های یک باره از نظر تئوری مهم اند اما در عمل مشکلاتی دارند. کلید را نمی توان حفظ کرد لذا فرستنده و گیرنده باید یک کپی نوشتاری داشته باشند. اگر یکی از آنها در معرض خطر واقع شود کلید های نوشتاری مطلوب نیستند. علاوه بر این مقدار کل داده هایی که می تواند ارسال شود با مقدار کلید محدود می گردد. حتی اگر جاسوس شانس بیاورد به اطلاعات ارزشمندی دست یابد چون کلید خنثی شده است ارسال اطلاعات به مقصدش کار بسیار مشکلی است. مشکل دیگر حساسیت این روش به کاراکتر های مفقود شده یا درج شده است. اگر فرستنده و گیرنده از همگامی خارج شوند تمام داده هایی که از آن پس می آیند سر گردان می مانند. با ظهور کامپیوترها افزونگی یکباره برای بسیاری از کاربردها مورد استفاده قرار می گیرد.منبع کلید می تواند DVDخاصی باشد که حاوی چندین گیگابایت از اطلاعات است اگر در جعبه فیلم DVD انتقال یابد و ویدیویی به اول آن اضافه شود هیچ گونه سوء ظن به وجود نمی آید.البته درسرعت های شبکه گیگابایتی اضافه کردن DVDجدید درهر 30 ثانیه خسته کننده است. بنابر این قبل از ارسال هر گونه پیامی DVDها باید توسط افراد از فرستنده به گیرنده حمل شوندو در نتیجه از امکانات عملی آنها کاسته می شود.
دو اصل اساسی رمز نگاری · اصل افزونگی :پیامها باید حاوی افزونگی باشند. بنابراین اصل اول رمز نگاری این است که هر پیام باید حاوی اضافاتی باشد تا مهاجمین پیام نادرستی به گیرنده نفرستد. این اضافات موجب می شوند که مهاجمین غیر فعال به راحتی نتوانند رمز را کشف کنند.لذا کشمکش هایی در اینجا وجود دارد. علاوه بر این اضافات نباید به صورت nعدد صفر در ابتدا یا انتهای پیام باشد زیرا اجرای این پیام ها از طریق الگوریتم های رمز نگاری منجر به نتایج قابل پیش بینی می شودو کار کاشف رمز را ساده می کند. · اصل تازگی:روشی برای خنثی کردن حملات پا سخ وجود داشته باشد. اصل دوم رمز نگاری این است که معیارهایی انتخاب کرد که مهاجمین فعال نتوانند پیام های قدیمی را ارسال کنند. اگر چنین معیارهایی وجود ندتشته باشد کارمند اخراجی می تواند خط تلفن TCPرا استراق سمع کند و اقدام به تکرار پیامهای معتبری نماید که قبلا ارسال شده اند. یکی از این معیارها این است که هر پیام دارای مهر زمان باشد ومثلا به مدت 10ثانیه معتبر باشد. سپس گیرنده می تواند پیام ها را به مدت 10ثانیه نگهداری کند تا پیامهایی را که اخیرا رسیدند با پیام های قبلی مقایسه نماید و تکراری ها را مشخص کند. پیام های قدیمی تراز 10ثانیه رامیتوان نادیده گرفت زیرا هر پاسخی که بعد از 10ثانیه ارسال شود نادیده گرفته خواهد شد.

Ehsan M
25th March 2012, 01:31 PM
استاندارد رمز نگاری داده ها-des در ژوئن 1977 دولت آمریکا مولد رمزی را که توسطibm ایجاد شد به عنوان استاندارد رسمی برای اطلاعات دسته بندی نشده پذیرفت. صنایع این رمز را که des (استاندارد رمز نگاری داده ها) نام داشت در محصولات امنیتی استفاده کردند. فعلا مثل روز های اول سری نیست اما شکل اصلاح شده اش هنوز مفید است. طرح کلی des : متن ساده به صورت بلوکهای 64بیتی رمز گذاری شد و متن رمزی 64 بیتی را تولید کرد. الگوریتم که پارامترش کلید 56بیتی است دارای 19 مرحله مجزا است. مرحله اول جابه جایی مستقل از کلید در متن ساده 64 بیتی است. آخرین مرحله دقیقا معکوس این جابه جایی است. مرحله قبل از مرحله نهایی 32بیت سمت چپ را با32بیت سمت راست تعویض می کند. عملکرد 16 مرحله دیگر یکسان است اما پارامترهای آنها متفاوت اند. در این الگوریتم رمز گشایی با همان کلید رمز نگاری انجام می شود.مراحل به ترتیب معکوس انجام می گیرند. رمز نگاری desبا استفاده از تکنیکی به نام فاصله گذاری قوی تر می شود. در این تکنیک قبل از اینکه متن ساده وارد desشود با کلید تصادفی 64 بیتی xor می شود وسپس نتیجه حاصل با کلید 64 بیتی دیگریxor می شود وانتقال می یابد.با عمل معکوس می توان فاصله گذاری را خنثی کرد (اگر گیرنده دو کلید فاصله گذاری داشته باشد). چون در این تکنیک بیتهایی به طول کلید اضافه می شود جستجوی جامع در فضای کلید مستلزم وقت زیادی است.توجه کنید که برای تمام بلوکها از یک کلید فاصله گذاری یکسانی استفاده می شود(یعنی فقط یک کلید فاصله گذاری وجود دارد). des از بدو پیدایش تکامل زیادی پیدا کرد. به رمزی به نام توسیفرمتکی بود که توسط ibm ایجاد شدو به ثبت رسید. با این تفاوت که رمزibm به جای کلید 56بیتی از کلید 128بیتی استفاده کرد. وقتی دولت فدرال آمریکا خواست رمزی را برای کاربرد ناشناخته ای استاندارد نماید ibm را دعوت کرد تا موضوع را با nsa (بازوی رمز گشایی دولت) که حاوی بزر گترین کاروان ریاضیدانان و کاشفان رمز است بحث نماید.در واقع nsa : به معنای نمایندگی امنیت ملی است.
استاندارد رمز نگاری پیشرفته- aes des دوران پایانی عمرش را سپری میکند. nist (موسسه ملی استانداردها و فناوری) رمزنگاری جدیدی را ابداع کرد. nist از بحث های مربوط به des با خبر بود و می دانست که اگر استاندارد جدیدی را اعلان کند تمام کسانی که از رمزنگاری خبردارند فکرمی کنندnsa این کار را انجام داد.تحت این شرایط هیچ کس از این استاندارد استفاده نمی کند واز بین میرود. به این ترتیب nist روش دیگری را برای بوروکراسی دولت درنظرگرفت: از رقابت رمزنگاری حمایت کرد. در ژوئن 1997 محققین سراسر دنیا دعوت شدند تا پیشنهادات خود را راجع به استاندارد جدید ارائه دهند که نامش aes (استاندارد رمز نگاری پیشرفته) بود.قواعد رقابتها : 1. الگوریتم باید رمز بلوکی متقارن باشد. 2. کل طراحی باید عمومی باشد. 3. از کلید هایی با طول های 128- 192و256 حمایت شود. 4. امکان پیاده سازی سخت افزاری و نرم افزاری وجود داشته باشد. 5. الگوریتم باید عمومی باشد یا با واژه های مناسبی مشخص شده باشد.

Ehsan M
25th March 2012, 01:32 PM
رمز نگاری Rijndael
از دید گاه ریاضی Rijndael بر اساس تئوری میدان گالویس طراحی شد که خواص امنیتی اثبات شده ای دارد. اما بدون پرداختن به ریاضیات می توان آن را به زبان C نوشت.
Rijndael از جانشینی و جایگشت استفاده می کند و از چند دور بهره می برد. تعداد دورها به اندازه کلید و اندازه بلوک بستگی دارد که برای کلیدهای 128 بیتی و بلوکهای 128 بیتی برابر با10 و برای بزرگترین کلیدها و بلوک ها تا 14 دور خواهد بود. اما بر خلاف DES تمام عملیات کلیه بایت ه را در نظرمی گیرند تا پیاده سازی سخت افزاری و نرم افزاری کار آمد باشد. تابع Rijndael سه پارامتر دارد: plaintext که یک آرایه 16بایتی است و حاوی داده ها ست. Ciphertext یک آرایه 16بایتی است که متن رمز نگاری در آن قرار می گیرد و key که کلید 16بایتی است. بر خلاف DES که دارای چند جعبه جانشینی است, Rijndael فقط یک جعبه جانشینی دارد.حا لت های رمز صرف نظر از تمام این پیچیدگی ها AES (یا DES یا هر رمز بلوکی برای آن) جانشینی تک کاراکتری با استفاده از کاراکترهای بزرگ است(برای AES کاراکترهای 128بیتی وبرای DES کاراکترهای 64بیتی). اگر متن ساده abcdefgh را100بار با یک کلید DES رمزنگاری کنید متن های رمزی که در هر 100بار حاصل می شوند یکسان اند. مهجم می تواند با استفاده از این خاصیت رمز را تضعیف کند.· حالت کتاب رمز الکترونیکی برای اینکه مشخص شود جانشینی تک کاراکتری چگونه می تواند به رمز آسیب برسانداز DES سه گانه استفاده میکنیم زیرا شرح بلوک های 64 بیتی آسان تر از 128 بیتی است, اما AES دقیقا همین مشکلات را دارد. آسان ترین راه برای استفاده از DES برای رمز نگاری متن طولانی این است که آن را به بلوک های 8بایتی (64بیتی) تقسیم کرد و آنها را یکی پس از دیگری با یک کلید یکسان رمز نگاری کرد.اگر آخرین قطعه متن ساده 64بیتی نباشد اضافاتی به آن افزوده می شودتا به 64بیت تبدیل گردد. این تکنیک ECB (حالت کتاب رمز الکترونیکی ) نام دارد. کتاب های رمز قدیمی کتاب هایی بودند که واژه های متن ساده به همراه متن رمزی آن در کتاب وجود داشتند که معمولا یک عدد دهدهی 5 رقمی بود.· حالت زنجیر بلوک رمز برای خنثی کردن این نوع حمله می توان تمام رمزهای بلوک را به روش های مختلفی به هم زنجیر کرد. در اینصورت اگر بلوکی جایگزین شود متن ساده ای که با شروع از آن بلوک رمز گشایی شد فاقد ارزش خواهد بود. یک روش زنجیر کردن بلوک ها زنجیر کردن بلوک رمز نام دارد.در این روش هر بلوک متن ساده قبل از رمز گذاری با بلوک رمزی قبلی XOR می شود. در نتیجه بلوکهای متن ساده یکسان به بلوکهای متن رمزی یکسانی نگاشت نمی شوند. و رمزنگاری یک رمزجانشینی تک حرفی بزرگ محسوب نمی شود. اولین بلوک با یک IV (ارزش دهی اولیه) تصادفی XOR می شود که (در متن ساده) همراه با متن رمزی ارسال می شود.امتیاز زنجیر کردن بلوک رمز این است که از بلوک متن ساده یکسان بلوکهای متنی رمزی یکسانی تولید نمی شود.این کار تحلیل رمز را مشکل می کند. در واقع به همین علت مورد استفاده قرار میگیرد.· حالت باز خورد رمز به هر حال عیب زنجیر کردن بلوک رمز این است که قبل از شروع رمز نگاری کل بلوک 64بیتی باید برسد.این حالت برای استفاده ار محاورهای که در آن ها میتوان کمتر از 8کاراکتر را وارد کردو منتظر پاسخ بود مناسب نیست. اما برای رمز نگاری بایت به بایت یعنی حالت بازبرخورد رمز با استفاده از DES سه گانه به کار می رود.مشکل حالت بازخورد رمز این است که اگر یک بیت از متن رمزی به طور تصادفی در حین انتقال معکوس شود, 8بایتی که در زمان حضور بایت بد در ثبات شیفت رمز گشایی شدند خراب می شدند. وقتی بایت بد از ثبات شیفت خارج می شود متن ساده درست بار دیگر تولید می شود.لذا اثر یک بیت معکوس شده تقریبا محلی است وبه بقیه پیام آسیب نمی رساند ولی به بیت هایی به طول ثبات شیفت آسیب می رساند.و حالت رمز جریان و حالت شمارنده.رمزهای دیگرDES وRijndael معروفترین الگوریتم های رمز نگاری کلید متقارن هستند. اما اشاره به این نکته مهم است که رمز های کلید متقارن دیگری وجود دارند. تحلیل رمز قبل از خاتمه بحث رمز نگاری چهار توسعه در تحلیل رمز را بحث می کنیم. توسعه اول, تحلیل رمز تفاضلی است ( بیهام و شامیر 1993). این تکنیک برای حمله به تمام رمز های بلوکی استفاده می شود.در این روش دو بلوک از متن ساده که تفاوت اندکی با هم دارند انتخاب می شوند وکاری که در فرآیند رمز نگاری در آنها انجام می شود مشاهده می گردد. در بسیاری از موارد بعضی از الگوهای بیتی نسبت به سایر الگوها متداول تراند و این مشاهده منجر به حمله احتمالی می شود.توسعه دوم, تحلیل رمزخطی (ماتسویی 1994). این تکنیک می توانDES را با 2 متن شناخته شده شکست دهد. این روش به این صورت عمل می کند که بیت هایی از متن ساده ومتن رمزی XORشدهالگوهای حاصل بررسی می گردند. وقتی این کار به طور تکراری انجام شود نیمی از بیت ها باید صفر و نیمی دیگر باید یک باشند. اما رمزها معمولا به یک سمت تمایل دارند وهمین تمایل هر چند کوچک می تواند از ضریب کاری برای شکستن رمز بکاهد.توسعه سوم, استفاده از تحلیل مصرف توان الکتریکی برای یافتن کلید سری است. کامپیوترها برای نمایش بیت 1از 3 ولت و برای نمایش بیت 0از 0 ولت استفاده می کنند. لذا پردازش 1نسبت به پردازش 0 توان بشتری مصرف می کند. اگر یک الگوریتم رمز نگاری حاوی حلقه ای باشد که در آن بیت های کلید به ترتیب پردازش شوند مهاجمی که ساعت n-GHz اصلی را با ساعت کندی (مثل 100Hz ) جایگزین می کند وگیره سوسماری (سرسیم رابط اتصال موقت- م) رادر منبع تغذیه CPUو پین های زمین قرار می دهد می تواند توان مصرفی هر دستور ماشین را نظارت کند. با استفاده از این داده ها کشف کلید ساده است. برای مقاومت در برابر این نوع تحلیل رمز الگوریتم باید به زبان اسمبلی کد شود تا اطمینان حاصل شود که مصرف انرژی مستقل از کلید است وعلاوه بر این مستقل از هر یک از کلید های هر دور است.توسعه چهارم, تحلیل زمان بندی است. الگوریتم های رمز نگاری پر از دستورات if هستند که بیت ها رادر کلید های هر دور تست می کنند. اگر زمان لازم برای بخش های then وelse متفاوت باشند با کند کردن ساعت و مشاهده میزان آن می توان کلیدهای هر دور را تشخیص داد. وقتی کلیدهای هردور شناخته شدند می توان کلید اصلی را محاسبه کرد. تحلیل انرژی وزمانبندی را می توان همزمان به کار برد و کار را آسانتر کرد. گرچه تحلیل زمانبندی وانرژی متداول نیستند میتوانند هر رمزی را برای مقاومت در برابر آنها نوشته نشده اند بشکنند.

Ehsan M
25th March 2012, 01:39 PM
رمزنگاری DES


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



به عنوان مثال، با جابجا کردن حروف الفبا در تمام متن به اندازه مشخص آن را رمز می‌کردند و تنها کسی که از تعداد جابجا شدن حروف مطلع بود می‌توانست متن اصلی را استخراج کند.
یکی دیگر از شیوه‌های رمزنگاری ابتدایی، پیچیدن یک نوار کاغذی بر روی استوانه‌ای با قطر مشخص و سپس نوشتن پیام روی کاغذ پیچیده شده بوده‌است. بدیهی است بدون اطلاع از مقدار قطر استوانه، خواندن پیام کار بسیار دشواری خواهد بود و تنها کسانی که نسخه‌های یکسانی از استوانه را داشته باشند می‌توانند پیام را بخوانند.
در قرن بیستم میلادی از همین روش به همراه موتورهای الکتریکی برای رمزنگاری با سرعت بالا استفاده شد که نمونه‌های آن در ماشین رمز لورنتز و ماشین رمز انیگما دیده می‌‍شود.
نمونه‌ای از روش رمز کردن موسوم به رمز سزار که بر اساس جابجایی ساده حروف الفبا عمل می‌کند
ماشین رمزنگاری هیل
وجود شاخصهای آماری برای دو یا سه حرفی ها، لستر اس.هیل را به این فکر واداشت که بایستی بیش از سه حرف را در هم ادغام کرد تا بلکه استحکام بیشتریدر مقابل حملات مبتنی بر شاخص های آماری متن، بوجود بیاید. این ریاضی دان از جبر ماتریسی بهره گرفت.
اصول ششگانه کرکهف
آگوست کرکهف در سال ۱۸۸۳ دو مقاله با عنوان «رمز نگاری نظامی» منتشر کرد. در این دو مقاله شش اصل اساسی وجود داشت که اصل دوم آن به عنوان یکی از قوانین رمز نگاری هنوز هم مورد استفاده دانشمندان در رمز نگاری پیشرفته‌است:
— سیستم رمزنگاری اگر نه به لحاظ تئوری که در عمل غیر قابل شکست باشد.
— سیستم رمز نگاری باید هیچ نکته پنهان و محرمانه‌ای نداشته باشد. بلکه تنها چیزی که سری است کلید رمز است.
— کلید رمز باید به گونه‌ای قابل انتخاب باشد که اولا بتوان براحتی آن را عوض کرد و ثانیا بتوان آنرا به خاطر سپرد و نیازی به یاداشت کردن کلید رمز نباشد.
— متون رمز نگاری باید از طریق خطوط تلگراف قابل مخابره باشند.
— دستگاه رمز نگاری یا اسناد رمز شده باید توسط یکنفر قابل حمل و نقل باشد.
— سیستم رمزنگاری باید به سهولت قابل راه اندازی باشد.
رمزنگاری پیشرفته
با پدید آمدن رایانه‌ها و افزایش قدرت محاسباتی آنها، دانش رمزنگاری وارد حوزه علوم رایانه گردید و این پدیده، موجب بروز سه تغییر مهم در مسائل رمزنگاری شد:


وجود قدرت محاسباتی بالا این امکان را پدید آورد که روش‌های پیچیده‌تر و مؤثرتری برای رمزنگاری به وجود آید.
روش‌های رمزنگاری که تا قبل از آن اصولا برای رمز کردن پیام به کار می‌رفتند، کاربردهای جدید و متعددی پیدا کردند.
تا قبل از آن، رمزنگاری عمدتاً روی اطلاعات متنی و با استفاده از حروف الفبا انجام می‌گرفت؛ اما ورود رایانه باعث شد که رمزنگاری روی انواع اطلاعات و بر مبنای بیت انجام شود.

دلیل رمزنگاری اطلاعات در کامپیوتر
گسترش و رشد بي سابقه اينترنت باعث ايجاد تغييرات گسترده در نحوه زندگی و فعاليت شغلی افراد ، سازمانها و موسسات شده است. امنيت اطلاعات يکی از مسائل مشترک شخصيت های حقوقی و حقيقی است . اطمينان از عدم دستيابی افراد غير مجاز به اطلاعات حساس از مهمترين چالش های امنيتی در رابطه با توزيع اطلاعات در اينترنت است . اطلاعات حساس که ما تمايلی به مشاهده آنان توسط ديگران نداريم، موارد متعددی را شامل می شود. برخی از اينگونه اطلاعات بشرح زير می باشند :


• اطلاعات کارت اعتباری
• شماره های عضويت در انحمن ها
• اطلاعات خصوصی
• جزئيات اطلاعات شخصی
• اطلاعات حساس در يک سازمان
• اطلاعات مربوط به حساب های بانکی

برخی اصطلاحات
Encryption : در علم cryptography به پنهان سازی اطلاعات گفته می‌شود.
▪ Decryption : معکوس ncryption است و درcrypto به آشکار سازی اطلاعات پنهان شده گفته می‌شود.
▪ Plain text: به متنی گفته می‌شود که معنای آن بدون تغییر خاصی قابل درک است.
▪ Cipher: به روشی برای تبدیل plain text به متنی که معنای آن پنهان باشدcipher گفته می‌شود.
▪ Cryptanalysis : : به هنر شکستن متون cipher شده گفته می‌شود.
▪ Intruder: در لغت به معنای مزاحم است ولی در اینجا به معنای کسی است که یک کپی از cipher text دارد و تمایل به شکستن رمز دارد. منظور از شکستن رمز یعنی decrypt کردن آن متن که خود دو نوع است activeintruder که می‌تواند اطلاعات را روی خط عوض کند و تغییر دهد و passive intruder که فقط می‌تواند اطلاعات روی خط را داشته باشد و قابلیت تغییر آنها را ندارد.
▪ Intrusion Points: نقاطی که یک نفوذگر بتواند به اطلاعات با ارزش دست پیدا کند.
▪ Internal Access Point: : به سیستم‌هایی گویند که در اتاق یا در شبکه داخلی مستقرند و هیچ امنیتی Local Security) ) روی آنها تنظیم نشده باشد و احتمال حمله به آنها وجود دارد.
▪ External Access Point : تجهیزاتی که ما را به شبکه خارجی مانند اینترنت متصل می‌کنند یا Applicationهایی که از طریق اینترنت کار می‌کنند و احتمال حمله به آنها وجود دارد.
اصطلاحات و انواع رمز نگاري
1- متن ساده: اطلاعات اوليه كه هنوز رمز نگاري نشده اند
2- متن رمزي: اطلاعاتي كه رمز نگاري شده اند
3- الگوريتم رمز نگاري: الگوريتمي كه متن ساده را به متن رمزي تبديل مي كند
4-كليد رمز: داده اي است كه الگوريتم رمز نگاري متن ساده را به متن رمزي تبديل مي كند و برعكس
5-رمز نگاري: فرايند تبديل متن ساده به متن رمزي است
6- رمز گشايي: فرايند تبديل متن رمزي به متن ساده است

استفاده از رمزنگاري سه سرويس امنيتي فراهم مي شود:
1-محرمانه سازي:
اطلاعات به هنگام ارسال يا ذخيره شدن از ديد افراد غير مجاز پنهان خواهد شد.
2- تــمــامـيــت:
تغييرات اعمال شده در اطلاعات ارسالي مشخص خواهد شد.
3-اعتبار سنجي:
مي توان منبع اطلاعات را اعتبار سنجي كرد.
سرویس رمزنگاری
به طور کلی، سرویس رمزنگاری، به قابلیت و امکانی اطلاق می‌شود که بر اساس فنون رمزنگاری حاصل می‌گردد. قبل از ورود رایانه‌ها به حوزه رمزنگاری، تقریباً کاربرد رمزنگاری محدود به رمز کردن پیام و پنهان کردن مفاد آن می‌شده‌است. اما در رمزنگاری پیشرفته سرویس‌های مختلفی از جمله موارد زیر ارائه گردیده‌است:


• محرمانگی یا امنیت محتوا : ارسال یا ذخیره اطلاعات به نحوی که تنها افراد مجاز بتوانند از محتوای آن مطلع شوند، که همان سرویس اصلی و اولیه پنهان کردن مفاد پیام است.

— سلامت محتوا : به معنای ایجاد اطمینان از صحت اطلاعات و عدم تغییر محتوای اولیه آن در حین ارسال است. تغییر محتوای اولیه اطلاعات ممکن است به صورت اتفاقی (در اثر مشکلات مسیر ارسال) و یا به صورت عمدی باشد.
— احراز هویت یا اصالت محتوا : به معنای تشخیص و ایجاد اطمینان از هویت ارسال‌کننده اطلاعات و عدم امکان جعل هویت افراد می‌باشد.
— عدم انکار: به این معنی است که ارسال‌کننده اطلاعات نتواند در آینده ارسال آن را انکار یا مفاد آن را تکذیب نماید.
— رمزنگاری به صورت سخت افزاری
— الگوریتم‌های رمزنگاری رامی توان هم به صورت سخت افزاری(به منظورسرعت بالاتر) وهم به صورت نرم افزاری (برای انعطاف پذیری بیشتر) پیاده سازی کرد روشهای جانشینی وجایگشتی می‌توانند با یک مدار ساده الکترونیکی پیاده سازی شوند. p-box ابزاری است که برای جایگشت بیتهای یک ورودی هشت بیتی کاربرد دارد.بود با سیم بندی و برنامه ریزی درونی این p-box قادراست هر گونه جایگشت بیتی راعملاً با سرعتی نزدیک به سرعت نور انجام بدهد چرا که هیچ گونه محاسبه‌ای لازم نیست وفقط تأخیر انتشار سیگنال وجود دارد.این طراحی از اصل کرکهف تبعیت می‌کند یعنی:حمله کننده از روش عمومی جایگشت بیت‌ها مطلّع است آن چه که او از آن خبر ندارد آن است که کدام بیت به کدام بیت نگاشته می‌شود کلید رمز همین است.
پروتکل رمزنگاری
به طور کلی، یک پروتکل رمزنگاری، مجموعه‌ای از قواعد و روابط ریاضی است که چگونگی ترکیب کردن الگوریتم‌های رمزنگاری و استفاده از آن‌ها به منظور ارائهٔ یک سرویس رمزنگاری خاص در یک کاربرد خاص را فراهم می‌سازد.
معمولاً یک پروتکل رمزنگاری مشخص می‌کند که اطلاعات موجود در چه قالبی باید قرار گیرند.
چه روشی برای تبدیل اطلاعات به عناصر ریاضی باید اجرا شود
کدامیک از الگوریتم‌های رمزنگاری و با کدام پارامترها باید مورد استفاده قرار گیرند
روابط ریاضی چگونه به اطلاعات عددی اعمال شوند
چه اطلاعاتی باید بین طرف ارسال‌کننده و دریافت‌کننده رد و بدل شود
چه مکانیسم ارتباطی برای انتقال اطلاعات مورد نیاز است
به عنوان مثال می‌توان به پروتکل تبادل کلید دیفی-هلمن برای ایجاد و تبادل کلید رمز مشترک بین دو طرف اشاره نمود.
پروتکل تبادل کلید دیفی ، هلمن
یک پروتکل رمزنگاری است که با استفاده از آن، دو نفر یا دو سازمان، می‌توانند بدون نیاز به هر گونه آشنایی قبلی، یک کلید رمز مشترک ایجاد و آن را از طریق یک مسیر ارتباطی غیر امن، بین خود تبادل نمایند. این پروتکل، اولین روش عملی مطرح شده برای تبادل کلید رمز درمسیرهای ارتباطی غیر امن است و مشکل تبادل کلید رمز در رمزنگاری کلید متقارن را آسان می‌سازد.
این پروتکل، در سال ۱۹۷۶ توسط دو دانشمند رمزشناس به نام‌های ویتفیلد دیفی و مارتین هلمن طراحی شده و در قالب یک مقالهٔ علمی منتشر گردیده است. مطرح شدن این پروتکل، گام مهمی در معرفی و توسعهٔ رمزنگاری کلید نامتقارن به حساب می‌آید.
الگوریتم رمزنگاری
الگوریتم رمزنگاری، به هر الگوریتم یا تابع ریاضی گفته می‌شود که به علت دارا بودن خواص مورد نیاز در رمزنگاری، در پروتکل‌های رمزنگاری مورد استفاده قرار گیرد. اصطلاح الگوریتم رمزنگاری یک مفهوم جامع است و لازم نیست هر الگوریتم از این دسته، به طور مستقیم برای رمزگذاری اطلاعات مورد استفاده قرار گیرد، بلکه صرفاً وجود کاربرد مربوط به رمزنگاری مد نظر است. در گذشته سازمان‌ها و شرکت‌هایی که نیاز به رمزگذاری یا سرویس‌های دیگر رمزنگاری داشتند، الگوریتم رمزنگاری منحصربه‌فردی را طراحی می‌نمودند. به مرور زمان مشخص گردید که گاهی ضعف‌های امنیتی بزرگی در این الگوریتم‌ها وجود دارد که موجب سهولت شکسته شدن رمز می‌شود. به همین دلیل امروزه رمزنگاری مبتنی بر پنهان نگاه داشتن الگوریتم رمزنگاری منسوخ شده‌است و در روش‌های جدید رمزنگاری، فرض بر این است که اطلاعات کامل الگوریتم رمزنگاری منتشر شده‌است و آنچه پنهان است فقط کلید رمز است.
انواع روشهای رمزنگاری:
رمزهای جانشينی:
مثال روش سزار
مدل بهينه سزار:طول کليد 26
حفظ فراوانی حروف و کلمه ها
رمزهای جابجايی:
در اين روش حروف جابجا می شوند.
شکل بعد نمونه ای از الگوريتم جابجايی است.
رمز هاي جانشيني
در رمز جانشيني هر حرف يا گروهي از حروف به جاي حرف يا گروهي از حروف ديگر قرار مي گيرد تا پنهان سازي صورت گيرد.
در اين روشa به D & b به E & c به F ......& z به C تبديل مي شود.
به عنوان مثال :عبارتattack به DWWDFN تبدیل می شود
در مثال ها متن ساده با حروف كوچك و متن رمزي با حروف بزرگ مشخص مي شود
در این مثال کلید (k) برابر 3 است که میتواند متغیر باشد.
هر سیستم رمزنگاری که در ان یک سمبول با سمبول دیگر جایگزین می شود اصطلاحا سیستم جانشینی تک حرفی گفته میشود که در آن کلید رمز یک رشته ی 26 حرفی است.
متن ساده: a b c d e f g h I j k l m n o p q r s t u v w x y z
متن رمزي: Q W E R T Y U I O P A S D F G H J K L Z X C V B N
مثال : طبق این الگو عبارت attack به متن QZZQEA تبديل مي شود.
روش ديگر حدس زدن كلمه يا عبارت است به عنوان مثال متن رمزي زير را از يك موسسه مالي درنظر بگيريد(به صورت گروههاي پنج كاراكتري دسته بندي شده اند):
CTBMN BYCTC BTJDS QXBNS GSTJC BTSWX CTQTZ CQVUJ
QJSGS TJQZZ MNQJS VLNSX VSZJU JDSTS JQUUS JUBXJ
DSKSU JSNTK BGAQJ ZBGYQ TLCTZ BNYBN QJSW
يكي از كلماتي كه ممكن است در موسسه مالي باشد financial است
رمزهای جابجايی:
رمزهاي جانشيني ترتيب نماد هاي متن ساده را حفظ ميكنند ولي آنها را تغيير مي دهند. رمز هاي جابه جايي ترتيب حروف را عوض مي كنند ولي آنها را تغيير نمي دهند.
الگوریتم‌های مورد استفاده در رمزنگاری به دسته‌های کلی زیر تقسیم می‌شوند:
— توابع بدون کلید
— توابع درهم‌ساز
— تبدیل‌های یک‌طرفه
— توابع مبتنی بر کلید
— الگوریتم‌های کلید متقارن
— الگوریتم‌های رمز بلوکی
— الگوریتم‌های رمز دنباله‌ای
— توابع تصدیق پیام
— الگوریتم‌های کلید نامتقارن
— الگوریتم‌های مبتنی بر تجزیه اعداد صحیح
— الگوریتم‌های مبتنی بر لگاریتم گسسته
— الگوریتم‌های مبتنی بر منحنی‌های بیضوی
— الگوریتم‌های امضای رقومی
الگوریتمهای رمزنگاری بسیار متعدد هستند، اما تنها تعداد اندکی از آن‌ها به صورت استاندارد درآمده‌اند.
یک تابع درهم‌سازی نوعی اینگونه کار می‌کند.
به هر رویه خوش تعریف یا تابع ریاضی که یک حجم زیاد داده (احتمالاً حجم نامشخصی از داده) را به یک عدد طبیعی تبدیل کند یک تابع هش یا تابع درهم‌سازی می‌گویند. عدد طبیعی حاصل از تابع هش معمولا به عنوان اندیس یک آرایه مورد استفاده است. مقادیری حاصل از این تابع را معمولا مقدار هش یا فقط هش می‌خوانند.
توابع درهم‌سازی بیشتر برای سرعت بخشیدن در جستوجوی جداول یا فشرده‌سازی داده‌ها استفاده می‌شوند مثل جستوجوی چیزی در یک پایگاه داده، تشخیص رکوردهای تکراری در حجم زیاد داده یا کشیدگی‌های مشابه در دنباله دی‌ان‌ای و بسیاری کاربردهای مشابه.
انواع روشهای رمزنگاری مبتنی بر کليد:
— الگوريتمهای کليد متقارن:
— رمز گذاری و رمز برداری با يک کليد انجام می گيرد.
— DES (Data Encryption Standard)
— Triple DES
— الگوريتمهای کليد نامتقارن (کليد عمومی):
— هر فرد يک کليد عمومی و يک کليد خصوصی دارد.
— بر اساس قوانين زير عمل می کند:
— D(E(P))=P
— استنتاج D از E بسيار بسيار دشوار است.
— E را نمی توان به ساده گی کشف کرد.
— دفی هلمن و RSA نموته ای از اين الگوريتمها ست.
— کاربرد در امضای ديجيتال.
— مقایسه رمزنگاری کلید متقارن و کلید نامتقارن‌
— اصولاً رمزنگاری کلید متقارن و کلید نامتقارن دارای دو ماهیت متفاوت هستند و کاربردهای متفاوتی‌ نیز دارند. بنا بر این مقایسه این دو نوع رمزنگاری بدون توجه به کاربرد و سیستم مورد نظر کار دقیقی نخواهد بود. اما اگر معیار مقایسه، به طور خاص، حجم و زمان محاسبات مورد نیاز باشد، باید گفت که با در نظر گرفتن مقیاس امنیتی معادل، الگوریتم‌های رمزنگاری متقارن خیلی سریع‌تر از الگوریتم‌های رمزنگاری نامتقارن می‌باشند.
— رمزنگاری کلید متقارن
— رمزنگاری کلید متقارن یا تک کلیدی، به آن دسته از الگوریتم‌ها، پروتکل‌ها و سیستم‌های رمزنگاری گفته می‌شود که در آن هر دو طرف رد و بدل اطلاعات از یک کلید رمز یکسان برای عملیات رمزگذاری و رمزگشایی استفاده می‌کنند. در این قبیل سیستم‌ها، یا کلیدهای رمزگذاری و رمزگشایی یکسان هستند و یا با رابطه‌ای بسیار ساده از یکدیگر قابل استخراج می‌باشند و رمزگذاری و رمزگشایی اطلاعات نیز دو فرآیند معکوس یکدیگر می‌باشند.
— واضح است که در این نوع از رمزنگاری، باید یک کلید رمز مشترک بین دو طرف تعریف گردد. چون کلید رمز باید کاملاً محرمانه باقی بماند، برای ایجاد و رد و بدل کلید رمز مشترک باید از کانال امن استفاده نمود یا از روش‌های رمزنگاری نامتقارن استفاده کرد. نیاز به وجود یک کلید رمز به ازای هر دو نفرِ درگیر در رمزنگاری متقارن، موجب بروز مشکلاتی در مدیریت کلیدهای رمز می‌گردد.
— رمز نگاری کليد نامتقارن
— در روش فوق ، هر کامپيوتر دارای يک کليد رمز ( کد ) بوده که از آن برای رمزنگاری يک بسته اطلاعاتی قبل از ارسال اطلاعات بر روی شبکه و يا کامپيوتر ديگر ، استفاده می نمايد. دراين روش لازم است در ابتدا مشخص گردد که کداميک از کامپيوترها قصد مبادله اطلاعاتی با يکديگر را دارند ، پس از مشخص شدن هر يک از کامپيوترها، در ادامه کليد رمز بر روی هر يک از سيستم ها می بايست نصب گردد. اطلاعات ارسالی توسط کامپيوترهای فرستنده با استفاده از کليد رمز ، رمز نگاری شده وسپس اطلاعات رمز شده ارسال خواهند شد. پس از دريافت اطلاعات رمز شده توسط کامپيوترهای گيرنده ، با استفاده از کليد رمز اقدام به بازگشائی رمز و برگرداندن اطلاعات بصورت اوليه و قابل استفاده خواهد شد . مثلاً فرض کنيد پيامی را برای يکی از دوستان خود رمز و سپس ارسال می نمائيد . شما برای رمز نگاری اطلاعات از روشی استفاده نموده ايد که بر اساس آن هر يک از حروف موجود در متن پيام را به دو حرف بعد از خود تبديل کرده ايد. مثلاً حروف A موجود در متن پيام به حروف C و حروف B به حروف D تبديل می گردند. پس از ارسال پيام رمز شده برای دوست خود ، می بايست با استفاده از يک روش ايمن و مطمئن کليد رمز را نيز برای وی مشخص کرد. در صورتيکه گيرنده پيام دارای کليد رمز مناسب نباشد ، قادر به رمز گشائی و استفاده از اطلاعات نخواهد بود. در چنين حالتی می بايست به دوست خود متذکر گرديد که کليد رمز ، " شيفت دادن هر حرف بسمت جلو و به اندازه دو واحد است " . گيرنده پيام با انجام عمليات معکوس قادر به شکستن رمز و استفاده از اطلاعات خواهد بود.
— روش متقارن Symmetric
— در این روش هر دو طرفی که قصد رد و بدل اطلاعات را دارند از یک کلید مشترک برای رمزگذاری و نیز بازگشایی رمز استفاده می‌کنند.در این حالت بازگشایی و رمزگذاری اطلاعات دو فرآیند معکوس یکدیگر می‌باشند. مشکل اصلی این روش این است که کلید مربوط به رمزگذاری باید بین دو طرف به اشتراک گذاشته شود و این سوال پیش می‌آید که دو طرف چگونه می‌توانند این کلید را به طور امن بین یکدیگر رد و بدل کنند. انتقال از طریق انترانت و یا به صورت فیزیکی تا حدی امن می‌باشد اما در انتقال آن در اینترنت به هیچ وجه درست نیست.در این قبیل سیستم‌ها، کلیدهای رمزنگاری و رمزگشایی یکسان هستند و یا رابطه‌ای بسیار ساده با هم دارند .این سیستم‌ها را سیستم‌های متقارن یا ” تک کلیدی ” مینامیم. به دلیل ویژگی ذاتی تقارن کلید رمزنگاری و رمزگشایی، مراقبت و جلوگیری از افشای این سیستم‌ها یا تلاش در جهت امن ساخت آنها لازم است در بر گیرنده ” جلوگیری از استراق سمع ” و ” ممانعت از دستکاری اطلاعات ” باشد .
— الگوریتم‌های این روش عبارتند از:
— ـ DES
ـ 3DES
ـ AES
ـ IDEA
ـ Blow Fish
ـ RC4این روش معمولا از روش نامتقارن کم هزینه‌تر است و سریع تر انجام می‌شود و معمولا کلیدها خیلی بزرگ هستند و الگوریتم‌های آن چند هزار سال است که در حال بهبودند و به خوبی شناخته شده هستند.
— روش نامتقارن Asymmetric
— این روش برای حل مشکل انتقال کلید در روش متقارن ایجاد شد. در این روش به جای یک کلید مشترک از یک جفت کلید به نامهای کلید عمومی و خصوصی استفاده می‌شود. در این روش از کلید عمومی برای رمزگذاری اطلاعات استفاده می‌شود. طرفی که قصد انتقال اطلاعات را به صورت رمزگذاری شده دارد اطلاعات را رمزگذاری کرده و برای طرفی که مالک این جفت کلید است استفاده می‌شود. مالک کلید، کلید خصوصی را پیش خود به صورت محرمانه حفظ می‌کند. در این دسته، کلیدهای رمزنگاری و رمزگشایی متمایزند و یا اینکه چنان رابطه پیچیده‌ای بین آنها حکم فرماست که کشف کلید رمزگشایی با در اختیار داشتن کلید رمزنگاری، عملا ناممکن است.
— برخی الگوریتم‌های روش نامتقارن عبارتند از:
— Elliptic Curve Cryptography
RSA
Blind Signatures
Diffie-Hellmanالگوریتم DH
Elgamal Discrete log Cryptosystem
Zero-knowledge Proofs
— رمزنگاری کلید نامتقارن
— رمزنگاری کلید نامتقارن، در ابتدا با هدف حل مشکل انتقال کلید در روش متقارن و در قالب پروتکل تبادل کلید دیفی-هلمن پیشنهاد شد. در این نوع از رمزنگاری، به جای یک کلید مشترک، از یک زوج کلید به نام‌های کلید عمومی و کلید خصوصی استفاده می‌شود. کلید خصوصی تنها در اختیار دارنده آن قرار دارد و امنیت رمزنگاری به محرمانه بودن کلید خصوصی بستگی دارد. کلید عمومی در اختیار کلیه کسانی که با دارنده آن در ارتباط هستند قرار داده می‌شود. به مرور زمان، به غیر از حل مشکل انتقال کلید در روش متقارن، کاربردهای متعددی برای این نوع از رمزنگاری مطرح گردیده‌است. در سیستم‌های رمزنگاری نامتقارن، بسته به کاربرد و پروتکل مورد نظر، گاهی از کلید عمومی برای رمزگذاری و از کلید خصوصی برای رمزگشایی استفاده می‌شود و گاهی نیز، بر عکس، کلید خصوصی برای رمزگذاری و کلید عمومی برای رمزگشایی به کار می‌رود.
— دو کلید عمومی و خصوصی با یکدیگر متفاوت هستند و با استفاده از روابط خاص ریاضی محاسبه می‌گردند. رابطه ریاضی بین این دو کلید به گونه‌ای است که کشف کلید خصوصی با در اختیار داشتن کلید عمومی، عملاً ناممکن است.
— رمزنگاری کليد عمومی
— در روش فوق از ترکيب يک کليد خصوصی و يک کليد عمومی استفاده می شود. کليد خصوصی صرفاً متعلق به کامپيوتر فرستنده بوده و کليد عمومی توسط کامپيوتر فرستنده در اختيار هر يک از کامپيوترهائی که قصد برقراری ارتباط با يکديگر را دارند ، گذاشته می شود. برای رمزگشائی يک پيام رمز شده ، کامپيوتر می بايست از کليد عمومی که توسط فرستنده ارائه شده، بهمراه کليد خصوص ی خود استفاده نمايد. يکی از متداولترين برنامه های رمزنگاری در اين رابطه PGP)Pretty Good Privacy) است . با استفاده از PGP می توان هر چيز دلخواه را رمز نمود.
— بمنظور پياده سازی رمزنگاری کليد - عمومی در مقياس بالا نظير يک سرويس دهنده وب ، لازم است از رويکردهای ديگری در اين خصوص استفاده گردد. " امضای ديجيتال " يکی از رويکردهای موجود در اين زمينه است يک امضای ديجيتالی صرفا" شامل اطلاعات محدودی بوده که اعلام می نمايد ، سرويس دهنده وب با استفاده و بکارگيری يک سرويس مستقل با نام " امضای مجاز " ، امين اطلاعات است . "امضای مجاز " بعنوان يک ميانجی بين دو کامپيوتر ايفای وظيف می نمايد. هويت و مجاز بودن هر يک از کامپيوترها برای برقراری ارتباط توسط سرويس دهنده انجام و برای هر يک کليد عمومی مربوطه را فراهم خواهد کرد.
— الگوريتم هاي رمزنگاري کليد خصوصي

— رمزهای كلید خصوصی بر مبنای نوع عملكرد ، چگونگی طراحی و پیاده سازی و كاربردهایشان به دو گونه رمزهای قطعه ای و رمزهای دنباله ای تقسیم می شوند. كه در هر یك از آ نها عملكرد رمز نگاری به صورت یك عملكرد دوجانبه بین دو طرف فرستنده و گیرنده می باشد كه با ایجاد یك ارتباط اولیه با یكدیگر روی كلید خصوصی توافق میكنند به گونه ای كه دشمن آن كلید را نداند. فرستندهS میخواهد پیام m1,….mi را به گونه ای به طرف گیرنده R بفرستد كه او بتواند به محتوای پیام دست یابد و در عین حال حریف مخالف A نتواند محتوای پیام را درك كند حتی اگر A تمامی آنچه بین R و S انتقال می یابد را دریافت نماید. به همین منظور فرستنده S هر متن روشنmi را به وسیله الگوریتم رمزگذاری E وكلید خصوصی به متن رمز شده تبدیل میكند ودریافت كننده نیزكه متن رمز شده را دریافت كرده می تواند با الگوریتم رمز گشائیD و كلید خصوصی متن اصلی را بدست آورد.
مقایسه رمزنگاری الگوریتمهای متقارن و الگوریتمهای کلید عمومی‌:
بحثهای زیادی شده که کدام یک از این الگوریتم‌ها بهترند اما جواب مشخصی‌ ندارد. البته بررسی‌ هایی‌ روی این ‏سوال شده به طور مثال Needham و Schroeder بعد از تحقیق به این نتیجه رسیدند که طول پیغامی‌ که با الگوریتمهای متقارن ‏میتواند رمزنگاری شود از الگوریتمهای کلید عمومی‌ کمتر است. و با تحقیق به این نتیجه ریسیدند که الگوریتمهای ‏متقارن الگوریتمهای بهینه تری هستند. اما وقتی‌ که بحث امنیت پیش می‌ آید الگوریتمهای کلید عمومی‌ کارایی‌ بیشتری‏دارند. و بطور خلاصه می‌توان گفت که الگوریتمهای متقارن دارای سرعت بالاتر و الگوریتمهای کلید عمومی‌ دارای ‏امنیت بهتری هستند. در ضمن گاهی‌ از سیستم ترکیبی‌ از هردو الگوریتم استفاده می‌کنند که به این الگوریتم‌ها الگوریتم ‏های ترکیبی‌ (hybrid)گفته می‌شود. اما اگر به طور دقیق تر به این دو نگاه کنیم آنگاه متوجه خواهیم شد که الگوریتمهای کلید عمومی‌ و الگوریتمهای ‏کلید متقارن دارای دو ماهیت کاملاً متفاوت هستند و کار بردهای متفاوتی‌ دارند به طور مثال در رمزنگاریهای ساده که ‏حجم داده‌ها بسیار زیاد است از الگوریتم متقارن استفاده می‌شود زیرا داده‌ها با سرعت بالاتری رمزنگاری و ‏رمزگشایی‌ شوند. اما در پروتکل هایی‌ که در اینترنت استفاده می‌شود، برای رمز نگری کلید هایی‌ که نیاز به مدیریت ‏دارند از الگوریتمهای کلید عمومی‌ استفاده می‌شود.
تجزیه و تحلیل رمز
تجزیه و تحلیل رمز یا شکستن رمز، به کلیه اقدامات مبتنی بر اصول ریاضی و علمی اطلاق می‌گردد که هدف آن از بین بردن امنیت رمزنگاری و در نهایت باز کردن رمز و دستیابی به اطلاعات اصلی باشد. در تجزیه و تحلیل رمز، سعی می‌شود تا با بررسی جزئیات مربوط به الگوریتم رمز و یا پروتکل رمزنگاری مورد استفاده و به کار گرفتن هرگونه اطلاعات جانبی موجود، ضعف‌های امنیتی احتمالی موجود در سیستم رمزنگاری یافته شود و از این طریق به نحوی کلید رمز به دست آمده و یا محتوای اطلاعات رمز شده استخراج گردد.
تجزیه و تحلیل رمز، گاهی به منظور شکستن امنیت یک سیستم رمزنگاری و به عنوان خرابکاری و یک فعالیت ضد امنیتی انجام می‌شود و گاهی هم به منظور ارزیابی یک پروتکل یا الگوریتم رمزنگاری و برای کشف ضعف‌ها و آسیب‌پذیری‌های احتمالی آن صورت می‌پذیرد. به همین دلیل، تجزیه و تحلیل رمز، ذاتاً یک فعالیت خصومت‌آمیز به حساب نمی‌آید؛ اما معمولاً قسمت ارزیابی و کشف آسیب‌پذیری را به عنوان جزئی از عملیات لازم و ضروری در هنگام طراحی الگوریتم‌ها و پروتکل‌های جدید به حساب می‌آورند و در نتیجه تجزیه و تحلیل رمز بیشتر فعالیت‌های خرابکارانه و ضد امنیتی را به ذهن متبادر می‌سازد. با توجه به همین مطلب از اصطلاح حملات تحلیل رمز برای اشاره به چنین فعالیت‌هایی استفاده می‌شود.
تحلیل رمز، در اصل اشاره به بررسی ریاضی الگوریتم (یا پروتکل) و کشف ضعف‌های احتمالی آن دارد؛ اما در خیلی از موارد فعالیت خرابکارانه، به جای اصول و مبنای ریاضی، به بررسی یک پیاده‌سازی خاص آن الگوریتم (یا پروتکل) در یک کاربرد خاص می‌پردازد و با استفاده از امکانات مختلف سعی در شکستن رمز و یافتن کلید رمز می‌نماید. به این دسته از اقدامات خرابکارانه، حملات جانبی گفته می‌شود.
دو اصل اساسی در رمز نگاری :
افزونگی :
رمز نگاری پیامها باید شامل مقداری افزونگی باشد
تازگی پیامها :
باید محاسباتی صورت گیرد تا مطمئن شویم هر پیام دریافتی تازه و جدید است( اخیرا فرستاده شده است )
افزونگی

اولین اصل آن است که تمام پیامهای رمز شده بایدشامل مقداری«افزونگی» [داده‌های زائد] باشندبه عبارت دیگر لزومی ندارد که اطلاعات واقعی به همان گونه که هستند رمز و ارسال شوند. یک مثال می‌تواند به فهم دلیل این نیاز کمک کند. فرض کنید یک شرکت به نام TCP با۶۰۰۰۰کالااز طریق سیستم پست الکترونیکی سفارش خرید می‌پذیرد. برنامه نویسان شرکت TCP به خیال آن که برنامه‌های موثر و کار آمدی می‌نویسند پیامهای سفارش کالا را مشتمل بر ۱۶بایت نام مشتری و به دنبال آن سه بایت فیلد داده (شامل یک بایت برای تعدادکالا ودو بایت برای شماره کالا)در نظر می‌گیرد که سه بایت آخر توسط یک کلید بسیار طولانی رمزنگاری می‌شود واین کلید را فقط مشتری و شرکت TCP می‌داند.
تازگی پیامها
دومین اصل اساسی در رمزنگاری آن است که باید محاسباتی باید صورت بگیرد تا مطمئن شویم هرپیام دریافتی تازه و جدید است یا به عبارتی اخیراً فرستاده شده‌است این بررسی برای جلوگیری از ارسال مجدد پیام‌های قدیمی توسط یک اخلالگر فعّال الزامی است اگر چنین بررسی‌هایی انجام نشود کارمند اخراجی ما قادر است با ایجاد یک انشعاب مخفی از خط تلفن پیام‌های معتبری را که قبلاً ارسال شده مکرراً ارسال نماید، حتی اگر نداند محتوای ان چیست.
راهکاری برای ایجاد تازگی پیام
یک چنین محاسبه‌ای را می‌توان با قرار دادن یک مهر زمان در پیام‌ها پیش بینی کرد به نحوی که پیام‌ها مثلاً برای ده ثانیه معتبر باشد گیرنده پیام می‌تواند آن را برای حدود ده ثانیه نگه دارد تا بتواند پیام‌های جدید را با آن مقایسه کرده و نسخه‌های تکراری را که دارای مهر زمان هستند به عنوان پیام‌های قدیمی شناخته و حذف خواهند شد.
رمزهاي دنباله اي
در طراحي رمزهاي دنباله اي يك مولد بيت شبه تصادفي نقش توليد کننده رشته کليد را براي سيستم رمزدنباله اي دارد . در واقع اين مولد ميتواند مولد رشته کليد نيز محسوب شود . از ديدگاه رمز نگاري يك مولد رشته کليد امن بايد داراي سه پارامتر مهم زير باشد :
١- پريود رشته کليد توليد شده بايد به حد کافي بزرگ باشد تا با طول پيام ارسال شده سازگاري داشته باشد .
٢- دنباله بيت خروجي حاصله از مولد بايد به راحتي قابل توليد کردن باشد .
٣- بيتهاي خروجي بايد به سختي قابل پيش بيني باشند .
در واقع با در اخثيار داشتن مولد و اولين n بيت خروجي ( a(0) ، a(1) …….a(n-1 از لحاظ محاسباتي پيش بيني بيت n+1ام يعني ( a(n+1 در دنباله با احتمال بيشتر از ½ بايد غير ممكن باشد.
حال مسئله اصلي اين است با آدام مبنا واصولي ميتوان اين نتيجه گيري ر ا انجام داد که سيگنال هاي خروجي از يك مولد رشته کليد به سختي قابل پيش بيني است ؟ به طور کلي اصولي قابل بررسي و کاربردي ارائه شده است تا امنيت مولد هاي بيت را ضمانت کند . در واقع تا کنون روشهاي بسياري براي توليد رشته کليدهاي امن پيشنهاد شده است و در مقابل رمزنگاری و امنيت تبادل داده نيز تحليل هائي طرح شده است که با توجه به پيچيده ترشدن دنباله ها به صورت ماهرانه تري به تحليل دنباله ها مي پردازند. در ادامه به برخي از روشهاي توليد بيت هاي شبه تصادفي مي پردازيم.
امضای دیجیتال
امضای دیجیتال مبتنی بر الگوریتم های رمزنگاری و الگوریتم های Hashing است . به عنوان نمونه ای از الگوریتم های رمزنگار می توان به RSA و EL Gamal و الگوریتم های Hashing، MD5 و SHA اشاره کرد.
روال کار در امضای دیجیتال به این شکل است که پیش از ارسال داده ها، آنها را با استفاده از الگوریتم های Hashing به یک کد فشرده Hash تبدیل می کنند که این کد در حقیقت حاوی اطلاعات شما می باشد. مقادیر هش شده همگی طول یکسانی دارند و در صورت تغییر در اطلاعات ورودی Hash Code جدیدی تولید می شود. این الگوریتم ها همگی یک طرفه هستند، یعنی پس از کد شدن اطلاعات نمی توان از روی این کدها اطلاعات اصلی را به دست آورد و تنها در صورتی می توان آن را کدگشایی کرد که کلید این کدها را در اختیار داشت.
در جریان ارسال اطلاعات کد Hash به دست آمده از الگوریتم محاسباتی توسط کلید خصوصی به حالت رمز تبدیل می شود و همراه با کلید عمومی به انتهای داده ها اضافه شده و برای گیرنده ارسال می شود به علاوه کد Hash واقعی داده ها نیز محاسبه شده و در انتها این دو کد باهم مقایسه می شوند. اگر این دو کد همخوانی داشتند بیانگر این است که داده های ارسال شده دستکاری نشده اند و قابلیت اعتماد دارند اما در صورتی که Hash کدهای ارسالی و واقعی یکسان نباشند به معنای دستکاری در اطلاعات است و این اطلاعات دیگر قابل اطمینان نیستند. حلقه کلید را می توان مجموعه ای از کلیدها دانست، یک حلقه کلید از کلید های عمومی همه افرادی که برای شما اطلاعاتی در قالب Hashcode ارسال کرده اند است .
امضا با کلید متقارن
امضا با کلید متقارن هر شخص دارای یک کلید شخصی می باشد که فقط مرکز پیام ( BB ) آن را میداند.
در این روش شخص آلیس پیام خود را با کلید شخصی خود که فقط مرکز پیام آن را میداند تبدیل به کد کرد و مرکز پیام آن را با کلید شخصی آلیس که در اختیار دارد تیدیل به پیام اصلی کرده و دوباره آن را با کلید شخصی شخص مقصد (باب) که در اختیار دارد تبدیل به کد قابل فهم برای باب می کند.
امضا با کلید عمومی
مضا با کلید عمومی هر شخص دارای یک کلید شخصی می باشد و یک کلید عمومی که همه آنرا میدانند.
در این روش شخص آلیس پیام خود را با کلید شخصی خود تبدیل به کد کرد و بعد از این عمل آن را با کلید عمومی باب دوباره رمز نگاری کرده . بای نیز پس از دریافت آن ، پیام را با کلید شخصی خود واکشی کرده و پس از آن با کلید عمومی آلیس که در اختیار دارد تیدیل به پیام اصلی کرده که بدین ترتیب پیام برای باب قابل فهم میشود .
مباني رمزنگاري کليد عمومي



• رمزنگاري کليد عمومي اساساً با انگيزه رسيدن به دو هدف طراحي شد:

– حل مساله توزيع کليد
– امضاي رقمي (ديجيتال)
– ديفي و هلمن توصيف كلي و اولين راه حل را در 1976 ارايه دادند.
بحث هش Hash Algorithm
روش Hash یک روش یکطرفهOne Way Function است که برای مطمئن بودن از عدم تغییر data استفاده می شود. حفظ تمامیت یا Integrity در این روش از فایل یک واحدی از دیتا ایجاد می‌کند که فایل هش Hash File نام دارد و حجم کوچکی دارد (در حد چند ۱۰ بایت) و در صورتیکه فایل تغییر کند Hash آن نیز تغییر می‌کند. در این روش هم در مبدا و هم در مقصد ، از فایلی که قرار است منتقل شود Hash گرفته می‌شود که باید Hash مبدا و مقصد با هم برابر باشد. اگر در طول مسیر انتقال فایل به هر دلیلی فایل تغییر کند Hash مبدا و مقصد یکی نخواهد شد. الگوریتم Hash خود روش‌های گوناگونی دارد که عبارتند از:
▪ روش MD4
▪روش MD5
▪روش SHA-A

منبع:http://www.dr-miriyan.com

Ehsan M
25th March 2012, 06:11 PM
الگوریتم های رمزنگاری متقارن یك الگوریتم متقارن از یك كلید برای رمزنگاری و رمزگشایی استفاده می‌كند. بیشترین شكل استفاده از رمزنگاری كه در كارتهای هوشمند و البته در بیشتر سیستمهای امنیت اطلاعات وجود دارد data encryption algorithm یا DEA است كه بیشتر بعنوان DES‌ شناخته می‌شود. الگوریتم DES یك محصول دولت ایالات متحده است كه امروزه بعنوان یك استاندارد بین‌المللی شناخته ‌شده و بطور وسیعی مورد استفاده قرار می گیرد. بلوكهای ۶۴ بیتی دیتا توسط یك كلید تنها كه معمولا ۵۶بیت طول دارد، رمزنگاری و رمزگشایی می‌شوند. الگوریتم DES‌ از نظر محاسباتی ساده است و به راحتی می‌تواند توسط پردازنده‌های كند (بخصوص آنهایی كه در كارتهای هوشمند وجود دارند) انجام گیرد. در دهه 60 میلادی، با رشد فزاینده فناوری كامپیوتر و نگرانی ها در مورد محرمانه و خصوصی بودن ارتباطات، علاقه به ایجاد یك استاندارد رمزنگاری ملی در آمریكا به شدت افزایش پیدا كرد. تلاشها در جهت ایجاد استانداردی بود كه بتواند توسط كامپیوترها و شبكه های متفاوت دولتی در آمریكا مورد استفاده قرار گیرد و همچنین در سیستم های پیمانكاران دولتی نیز مفید واقع شود. تلاشهای مذكور منجر به ایجاد استاندارد رمزنگاری داده یا Data Encryption Standard (DES) گشت كه امروزه به صورت وسیعی در رمزنگاری مورد استفاده قرار می گیرد. در سال 1965 موسسه ملی استانداردها و فناوری آمریكا كه امروزه با نام NIST شناخته می شود، مسئولیت تعیین استانداردهای محافظت از سیستم های كامپیوتری را بر عهده گرفت. موسسه مذكور در فاصله سالهای 1968 تا 1971 به مطالعه و تحقیق در مورد نیازهای امنیتی سیستم های كامپیوتری دولتی پرداخت كه در نهایت منجر به تهیه یك استاندارد رمزنگاری شد. موسسه NIST با همكاری NSA یا آژانس امنیت ملی آمریكا، نخستین برنامه رمزنگاری را تولید كرد. در اوایل كار هدف ایجاد یك استاندارد واحد برای محافظت از داده های طبقه بندی شده دولتی و اطلاعات حساس بخش خصوصی بود كه از طرفی بتواند بین 10 تا 15 سال دوام آورد (هدفی كه DES بسیار پیشتر از آن رفت) و از طرفی نیز قابل استفاده در انواع سیستم های مختلف حتی سیستم های كند باشد. در آگوست 1974، NSA از تولید كنندگان الگوریتم های رمزنگاری برای بار دوم دعوت كرد تا روش های خود را اعلام كنند تا شاید در ایجاد یك استاندارد رمزنگاری عمومی با كیفیت بالا مورد استفاده قرار گیرد. در این زمان IBM الگوریتمی را ارائه كرد كه مورد قبول NSA واقع شد. در شركت IBM تا قبل از آن كارهایی برای توسعه چندین الگوریتم متفاوت رمزنگاری انجام شده بود. یكی از آنها یك الگوریتم 64 بیتی بود كه برای محافظت از تراكنش های مالی به كار می رفت و دیگری یك الگوریتم 128 بیتی به نام Lucifer بود. آژانس امنیت ملی آمریكا در آن زمان از طرفی IBM را تشویق به ثبت الگوریتم Lucifer كرد و از طرف دیگر به متخصصان خود اجازه داد تا سعی كنند ارتباطات رمزنگاری شده توسط الگوریتم مذكور را بشكنند. لذا الگوریتم مذكور بعد از بررسی پایه های ریاضی و سعی در شكستن آن، دچار تغییرات و اصلاحاتی شد (برای مثال طول كلید از 128 بیت به 56 بیت كاهش یافت و تغییراتی در توابع جایگزینی انجام شد) تا به تولد DES منجر شد. بالاخره در سال 1977 این الگوریتم به عنوان استاندارد رمزنگاری داده منتشر شد و به عنوان روشی رسمی در محافظت از داده های طبقه بندی نشده در مؤسسات دولتی آمریكا مورد استفاده قرار گرفت. در عین حال NSA موظف شد تا هر پنج سال یك بار این الگوریتم را مورد مطالعه قرار دهد و تأیید كند كه هنوز می تواند به عنوان استاندارد به كار رود. قابل ذكر است كه این روش بستگی به مخفی‌بودن كلید دارد. بنابراین برای استفاده در دو موقعیت مناسب است: هنگامی كه كلیدها می‌توانند به یك روش قابل اعتماد و امن توزیع و ذخیره شوند یا جایی كه كلید بین دو سیستمی مبادله می‌شود كه قبلا هویت یكدیگر را تایید كرده‌اند. عمر كلیدها بیشتر از مدت تراكنش طول نمی‌كشد. رمزنگاری DES عموما برای حفاظت دیتا از شنود در طول انتقال استفاده می‌شود.

Ehsan M
25th March 2012, 06:12 PM
استاندارد پیشرفته رمزنگاری یا AES چیست؟ مؤسسه NIST سالها با گروههای رمزنگاری همكاری كرد تا استاندارد رمزنگاری پیشرفته ای را تدوین نماید. هدف كلی توسعه استانداردی بود كه توانایی محافظت از اطلاعات حساس را برای حداقل یك دهه دارا باشد. مسابقات بسیاری انجام شد تا الگوریتمی كه باید پایه استاندارد رمزنگاری پیشرفته (AES) باشد، معین گردد. بالاخره در سال 1999، بین پنج الگوریتمی كه به فاینال رسیدند، الگوریتم Rijndael انتخاب شد كه توسط Joan Daemon و Vincent Rijmen نوشته شده بود. الگوریتم هایی كه به فاینال راه پیدا كرده بودند عبارتند از: MARS، RC6، Rijndael، Serpent و Twofish. استاندارد FIPS-197 در همین رابطه تهیه شده است و الگوریتم مذكور را به عنوان یك رمزنگاری متقارن تعریف می كند كه سازمان های دولتی آمریكا باید با استفاده از آن، اطلاعات حساس را رمزنگاری كنند. از آنجایی كه اثبات قابل اعتماد بودن الگوریتم مذكور كار بسیار دشواری بود، بسیاری از كشورها و ملیت های دیگر نیز به پروژه AES پیوستند و به آزمایش این الگوریتم پرداختند و از آنجایی كه مشكلی در این مورد پیدا نشد، الگوریتم مذكور روز به روز قابلیت اعتماد بیشتری را كسب كرد.
طرز كار AES الگوریتم Rijndael بایت به بایت كار می كند و ورودی اصلی را با كلید رمزنگاری در یك ماتریس 4×4 جفت می كند. كلید، به طریقی تقسیم یا برنامه ریزی شده است كه بتواند در مراحل مختلف تكرار به تدریج تزریق شود. اولین قسمت كلید قبل از شروع پروسه 10 مرحله ای تزریق می شود. در هر كدام از این مراحل، بایتها جابجا می شوند، ردیف ها شیفت پیدا می كنند و ستونها تركیب می شوند.


SubBytes
در پروسه جابجایی، بایت های متن ورودی در یك جعبه جابجایی به نام S-box قرار می گیرند كه یك ماتریس 16×16 است. هر بایت در یك تقاطع سطر و ستون این ماتریس جا می گیرد. برای پیدا كردن جای هر بایت اولین عدد صحیح مبنای 16 (nibble) در یك بایت متن اصلی گرفته شده و از آن برای مشخص كردن سطر S-box استفاده می شود و سپس از دومین nibble برای مشخص كردن ستون استفاده می شود. كاراكتری كه در تقاطع سطر و ستون انتخاب شده ذخیره می گردد به عنوان SubByte برای متن اصلی شناخته می شود. این پروسه برای هر 16 بایت در ماتریس تكرار می شود.




http://www.certcc.ir/parameters/82.99.218.78/modules/cdk/upload/content/article/Image/5.JPG





شیفت ردیف و تركیب ستونها
بایت هایی كه باید رمزنگاری شوند، توسط جایگذاری تعویض می شوند وسپس ردیف ها شیفت پیدا می كنند. برای مثال اولین ردیف دست نخورده باقی می ماند، ردیف دوم یك محل به راست جابجا می شود، سومین ردیف دو محل جابجا می شود و آخرین ردیف نیز سه محل جابجا می شود. این پروسه توسط یك فاز تركیب ستونها دنبال می شود كه در آن هر ستون از ماتریس در یك ماتریس دیگر ضرب می شود تا موقعیت ستون تغییر پیدا كند.




http://www.certcc.ir/parameters/82.99.218.78/modules/cdk/upload/content/article/Image/51.JPG





كلیدهای Round
در مرحله بعدی یك كلید round به هر ستون اضافه می شود. این كلید در واقع یك تكه كوچك از یك كلید محرمانه است كه برای مراحل بعدی رمزنگاری تزریق می شود.

تكرار
این تبدیل ها 9 بار دیگر تكرار می شوند. در تكرار آخر تركیب ستون ها وجود ندارد و با اضافه كردن كلید round متن رمزنگاری شده به دست می آید. كلید نیز به نوبه خود شیفت پیدا می كند، گرد می شود و به خودش اضافه می شود.

Ehsan M
25th March 2012, 06:22 PM
رمزنگاری علم کدها و رمزهاست. یک هنر قدیمی است و برای قرنها بمنظور محافظت از پیغامهایی که بین فرماندهان، جاسوسان،‌ عشاق و دیگران ردوبدل می‌شده، استفاده شده است تا پیغامهای آنها محرمانه بماند.
هنگامی که با امنیت دیتا سروکار داریم، نیاز به اثبات هویت فرستنده و گیرنده پیغام داریم و در ضمن باید از عدم تغییر محتوای پیغام مطمئن شویم. این سه موضوع یعنی محرمانگی، تصدیق هویت و جامعیت در قلب امنیت ارتباطات دیتای مدرن قرار دارند و می‌توانند از رمزنگاری استفاده کنند.

اغلب این مساله باید تضمین شود که یک پیغام فقط میتواند توسط کسانی خوانده شود که پیغام برای آنها ارسال شده است و دیگران این اجازه را ندارند. روشی که تامین کننده این مساله باشد "رمزنگاری" نام دارد. رمزنگاری هنر نوشتن بصورت رمز است بطوریکه هیچکس بغیر از دریافت کننده موردنظر نتواند محتوای پیغام را بخواند.


آنچه در این مقاله مورد بررسی قرار می گیرد:
1-مقدمه ای بر نحوه عمل رمزگذاری
2-سیستم های رمزگذاری امنیتی
3-کلید متقارن و نامتقارن
4-رمز نگاری کلید عمومی
‏5- SSL و TLS
6- الگوریتم آمیزش

رمزنگاری مخفف‌ها و اصطلاحات مخصوص به خود را دارد. برای درک عمیق‌تر به مقداری از دانش ریاضیات نیاز است. برای محافظت از دیتای اصلی ( که بعنوان plaintext شناخته می‌شود)، آنرا با استفاده از یک کلید (رشته‌ای محدود از بیتها) بصورت رمز در می‌آوریم تا کسی که دیتای حاصله را می‌خواند قادر به درک آن نباشد. دیتای رمزشده (که بعنوان ciphertext شناخته می‌شود) بصورت یک سری بی‌معنی از بیتها بدون داشتن رابطه مشخصی با دیتای اصلی بنظر می‌رسد. برای حصول متن اولیه دریافت‌کننده آنرا رمزگشایی می‌کند. یک شخص ثالت (مثلا یک هکر) می‌تواند برای اینکه بدون دانستن کلید به دیتای اصلی دست یابد، کشف رمز‌نوشته (cryptanalysis) کند. بخاطرداشتن وجود این شخص ثالث بسیار مهم است.
رمزنگاری دو جزء اصلی دارد، یک الگوریتم و یک کلید. الگوریتم یک مبدل یا فرمول ریاضی است. تعداد کمی الگوریتم قدرتمند وجود دارد که بیشتر آنها بعنوان استانداردها یا مقالات ریاضی منتشر شده‌اند. کلید، یک رشته از ارقام دودویی (صفر و یک) است که بخودی‌خود بی‌معنی است. رمزنگاری مدرن فرض می‌کند که الگوریتم شناخته شده است یا می‌تواند کشف شود. کلید است که باید مخفی نگاه داشته شود و کلید است که در هر مرحله پیاده‌سازی تغییر می‌کند. رمزگشایی ممکن است از همان جفت الگوریتم و کلید یا جفت متفاوتی استفاده کند.
دیتای اولیه اغلب قبل از رمزشدن بازچینی می‌شود؛ این عمل عموما بعنوان scrambling شناخته می‌شود. بصورت مشخص‌تر، hash function ها بلوکی از دیتا را (که می‌تواند هر اندازه‌ای داشته باشد) به طول از پیش مشخص‌شده کاهش می‌دهد. البته دیتای اولیه نمی‌تواند از hashed value بازسازی شود. Hash functionها اغلب بعنوان بخشی از یک سیستم تایید هویت مورد نیاز هستند؛ خلاصه‌ای از پیام (شامل مهم‌ترین قسمتها مانند شماره پیام، تاریخ و ساعت، و نواحی مهم دیتا) قبل از رمزنگاری خود پیام، ساخته ‌و hash می‌شود. یک چک تایید پیام (Message Authentication Check) یا MAC یک الگوریتم ثابت با تولید یک امضاء برروی پیام با استفاده از یک کلید متقارن است. هدف آن نشان دادن این مطلب است که پیام بین ارسال و دریافت تغییر نکرده است. هنگامی که رمزنگاری توسط کلید عمومی برای تایید هویت فرستنده پیام استفاده می‌شود، منجر به ایجاد امضای دیجیتال (digital signature) می‌شود.


1-مقدمه ای بر نحوه عمل رمزگذاری
هنگامی که ما از اینترنت استفاده می کنیم، آنطور که ظاهرا به نظر می رسد فقط با کلیک کردن روی لینک هاو دریافت منفعل اطلاعات مانند خواندن اخبار یا ارسال پست های وبلاگ خود در وب مرور نمی کنیم، بلکه مقدار زیادی از زمان ما حضور شامل ارسال اطلاعات خود ما به دیگران است. سفارش خرید چیزی از فروشندگان آنلاین در اینترنت، صرف نظر از اینکه کالای درخواستی کتاب ، سی دی یا هر چیز دیگری باشد و یا ثبت نام برای حساب آنلاین، نیاز به وارد کردن اطلاعات حساس شخصی ما دارد. یک معامله معمولی ممکن است نه تنها شامل پرسش برای دریافت نام و نام خانوادگی ما ، آدرس ایمیل و آدرس و شماره تلفن های محل سکونت ما باشد، بلکه نیاز به وارد کردن کلمه های عبور و شماره شناسایی شخصی (PINs) باشد.
رشد باور نکردنی کاربردهای اینترنت، کسب و کار و مصرف کنندگان را به طور یکسان با وعده تغییر نحوه زندگی و کار هیجان زده کرده و تحت تاثیر خود قرار داده است. خب، این کار بسیار آسانی است که رو به روی لپ تاپ خود نشسته و به خرید و فروش کالا در سراسر جهان بپردازیم. اما امنیت دغدغه اصلی استفاده از اینترنت است، به ویژه هنگامی که از آن برای ارسال اطلاعات حساس میان دو طرف استفاده می کنید.
بیایید واقعیت را بپذیریم، مقدار زیادی اطلاعات وجود دارد که به هیچ وجه دوست نداریم در اختیار دیگران قرار بگیرد، مانند:
• اطلاعات کارت های اعتباری
• شماره های امنیتی اجتماعی
• مکاتبات خصوصی
• اطلاعات شخصی
• اطلاعات حساس شرکت ما
• اطلاعات حساب بانکی
امنیت اطلاعات در کامپیوتر و بر روی اینترنت توسط روش های مختلفی حاصل می شود. روشی ساده اما کاربردی و مهم در روش های امنیتی این است که اطلاعات حساس را فقط بر روی درایوهای ذخیره سازی قابل حمل مانند حافظه های قابل حمل فلش مموری یا دیسک سخت های خارجی (اکسترنال) نگهداری کنیم. اما محبوب ترین اشکال امنیتی تماما بر رمزگذاری دیتا متکی هستند، فرایند رمزگذاری اطلاعات به گونه ای که تنها فرد (و یا کامپیوتر) دارای کلیدی ویژه بتواند آن را رمزگشایی کرده و مورد استفاده قرار دهد.


2-سیستم های رمزگذاری امنیتی
رمزگذاری های کامپیوتری بر مبنای علم رمزنگاری یا cryptography است که قدمتش به زمانی بر می گردد که برای اولین بار انسان ها سعی در حفظ اطلاعات محرمانه خود نمودند. قبل از عصر دیجیتال، بزرگترین کاربران رمزنگاری دولت ها و موسسات سری بودند، به ویژه برای مقاصد نظامی.

پلوتارک (Plutarch) مورخ یونانی، به عنوان مثال در کتاب خود در مورد ژنرال های اسپارتی نوشته است که پیام های حساس و محرمانه را با استفاده از scytale ، استوانه ای نازک ساخته شده از چوب، ارسال و دریافت می کردند. برای این کار ژنرال تکه ای از پوست را به دور scytale پیچیده و پیغام خود را در امتداد طول آن نگارش می نمود. وقتی کسی کاغذ را از سیلندر خارج می کرد، نوشته ظاهرا بی معنا و مزخرف به نظر می رسید. اما اگر ژنرال دیگر کاغذ پوست را دریافت می کرد و scytale مشابهی از نظر اندازه در اختیار داشت ، قادر بود با پیچاندن پوست به دور آن، به راحتی پیام در نظر گرفته شده را بخواند.
یونانیان همچنین اولین تمدنی بودند که به استفاده از حروف یا اعداد رمزی (ciphers) روی آوردند، این حروف کدهای خاصی بودند که شامل جایگزینی یا جابجا شدگی حروف و اعداد بودند. در اینجا مثالی فرضی از حروف و اعداد رمزی متدوال آن زمان ، با شبکه از حروف و اعداد مربوط به آنها آمده:
اگر یک ژنرال اسپارتی می خواست پیامی با مضمون: «من یک اسپارتی هستم» را به ژنرال دیگر ارسال کند، این جمله به صورت رمزی مجموعه ای از اعداد پشت سر هم می شد.
تا زمانی که هر دو ژنرال از اصول یکسانی در رمزنگاری استفاده می کردند، هر یک قادر بودند پیام دیگری را رمزگشایی کنند. برای اینکه کشف پیام توسط دشمن مشکل تر شود ، آنها قادر بودند حروف داخل هر شبکه را در هر ترکیب دلخواهی بچینند.
امروزه، بیشترین اشکال رمزنگاری مورد استفاده در جهان بر کامپیوترها متکی است، به این دلیل که رمز گشایی یا لو رفتن کد های ساخته بشر برای کامپیوترها خیلی آسان است. حروف رمزی یا Ciphers نیز امروزه به عنوان الگوریتم شناخته می شوند، که راهنمایی برای رمزگذاری اند؛ آنها روشی ارائه می کنند که در آن به سادگی می توان یک پیام ایجاد کرده و آن را در محدوده خاصی از ترکیبات ممکن رمزنگاری نمود. از سوی دیگر ، «کلید رمزگشایی» به کامپیوتر یا شخص کمک می کند تا بتوانند ترکیب درست را از میان تمام ترکیبات ممکن پیدا کرده و پیام رمز گشایی شود.
به طور کلی سیستم های رمزنگاری رایانه ای به یکی از دو دسته زیر تعلق دارند :
• رمز نویسی کلید متقارن یا Symmetric-key encryption
• رمز نویسی کلید عمومی یا Public-key encryption
در بخش های بعدی، هر یک از این سیستم ها شرح داده می شوند.

3-کلید متقارن و نامتقارن
درست مانند دو ژنرال اسپارتی که به یکدیگر پیام ارسال می کردند، کامپیوترهایی هم که از شیوه رمزنگاری کلید متقارن (هم اندازه) برای ارسال اطلاعات میان یکدیگر استفاده می کنند باید کلیدی یکسان و مشابه داشته باشند.
در روش رمزنگاری با کلید متقارن، هر کامپیوتر دارای یک کلید رمز (کد) است که می تواند از آن برای رمزی کردن بسته (packet) از اطلاعات قبل از اینکه توسط شبکه به کامپیوتر دیگر ارسال کند استفاده کند. کلید متقارن مستلزم آن است که شما دقیقا بدانید کامپیوتر مبدا و مقصد در شبکه کدام ها هستند تا قادر باشید بر روی هر دو کلید مشابه را نصب کنید. رمز نویسی با کلید متقارن در اصل همان کد های مخفی هستند که هر یک از 2 کامپیوتر باید بدانند تا بتواننند اطلاعات دریافتی را رمزگشایی نمایند. کدها در اصل کلیدی برای رمزگشایی از پیام را فراهم می کنند.
3-1) سیستم های کلید متقارن :
یک الگوریتم متقارن از یک کلید برای رمزنگاری و رمزگشایی استفاده می‌کند. بیشترین شکل استفاده از رمزنگاری که در کارتهای هوشمند و البته در بیشتر سیستمهای امنیت اطلاعات وجود دارد data encryption algorithm یا DEA است که بیشتر بعنوان DES‌ شناخته می‌شود. DES یک محصول دولت ایالات متحده است که امروزه بطور وسیعی بعنوان یک استاندارد بین‌المللی شناخته ‌می‌شود. بلوکهای ۶۴بیتی دیتا توسط یک کلید تنها که معمولا ۵۶بیت طول دارد، رمزنگاری و رمزگشایی می‌شوند. DES‌ از نظر محاسباتی ساده است و براحتی می‌تواند توسط پردازنده‌های کند (بخصوص آنهایی که در کارتهای هوشمند وجود دارند) انجام گیرد.
این روش بستگی به مخفی‌بودن کلید دارد. بنابراین برای استفاده در دو موقعیت مناسب است: هنگامی که کلیدها می‌توانند به یک روش قابل اعتماد و امن توزیع و ذخیره شوند یا جایی که کلید بین دو سیستم مبادله می‌شوند که قبلا هویت یکدیگر را تایید کرده‌اند عمر کلیدها بیشتر از مدت تراکنش طول نمی‌کشد. رمزنگاری DES عموما برای حفاظت دیتا از شنود در طول انتقال استفاده می‌شود.
کلیدهای DES ۴۰بیتی امروزه در عرض چندین ساعت توسط کامپیوترهای معمولی شکسته می‌شوند و بنابراین نباید برای محافظت از اطلاعات مهم و با مدت طولانی اعتبار استفاده شود. کلید ۵۶بیتی عموما توسط سخت‌افزار یا شبکه‌های بخصوصی شکسته می‌شوند. رمزنگاری DESسه‌تایی عبارتست از کدکردن دیتای اصلی با استفاده از الگوریتم DES‌ که در سه مرتبه انجام می‌گیرد. (دو مرتبه با استفاده از یک کلید به سمت جلو (رمزنگاری) و یک مرتبه به سمت عقب (رمزگشایی) با یک کلید دیگر)

این عمل تاثیر دوبرابر کردن طول مؤثر کلید را دارد؛ بعدا خواهیم دید که این یک عامل مهم در قدرت رمزکنندگی است.
الگوریتمهای استاندارد جدیدتر مختلفی پیشنهاد شده‌اند. الگوریتمهایی مانند Blowfish و IDEA برای زمانی مورد استفاده قرار گرفته‌اند اما هیچکدام پیاده‌سازی سخت‌افزاری نشدند بنابراین بعنوان رقیبی برای DES برای استفاده در کاربردهای میکروکنترلی مطرح نبوده‌اند. پروژه استاندارد رمزنگاری پیشرفته دولتی ایالات متحده (AES) الگوریتم Rijndael را برای جایگزیتی DES بعنوان الگوریتم رمزنگاری اولیه انتخاب کرده است. الگوریتم Twofish مشخصا برای پیاده‌سازی در پردازنده‌های توان‌ـ‌پایین مثلا در کارتهای هوشمند طراحی شد.
در ۱۹۹۸ وزارت دفاع ایالات متحده تصمیم گرفت که الگوریتمها Skipjack و مبادله کلید را که در کارتهای Fortezza استفاده شده بود، از محرمانگی خارج سازد. یکی از دلایل این امر تشویق برای پیاده‌سازی بیشتر کارتهای هوشمند برپایه این الگوریتمها بود.
برای رمزنگاری جریانی (streaming encryption) (که رمزنگاری دیتا در حین ارسال صورت می‌گیرد بجای اینکه دیتای کدشده در یک فایل مجزا قرار گیرد) الگوریتم RC4‌ سرعت بالا و دامنه‌ای از طول کلیدها از ۴۰ تا ۲۵۶ بیت فراهم می‌کند. RC4 که متعلق به امنیت دیتای RSA‌ است، بصورت عادی برای رمزنگاری ارتباطات دوطرفه امن در اینترنت استفاده می‌شود.

3-2) سیستمهای کلید نامتقارن : سیستمهای کلید نامتقارن از کلید مختلفی برای رمزنگاری و رمزگشایی استفاده می‌کنند. بسیاری از سیستمها اجازه می‌دهند که یک جزء (کلید عمومی یا public key) منتشر شود در حالیکه دیگری (کلید اختصاصی یا private key) توسط صاحبش حفظ شود. فرستنده پیام، متن را با کلید عمومی گیرنده کد می‌کند و گیرنده آن را با کلید اختصاصی خودش رمزنگاری میکند. بعبارتی تنها با کلید اختصاصی گیرنده می‌توان متن کد شده را به متن اولیه صحیح تبدیل کرد. یعنی حتی فرستنده نیز اگرچه از محتوای اصلی پیام مطلع است اما نمی‌تواند از متن کدشده به متن اصلی دست یابد، بنابراین پیام کدشده برای هرگیرنده‌ای بجز گیرنده مورد نظر فرستنده بی‌معنی خواهد بود. معمولترین سیستم نامتقارن بعنوان RSA‌ شناخته می‌شود (حروف اول پدیدآورندگان آن یعنی Rivest ، Shamir و Adlemen است). اگرچه چندین طرح دیگر وجود دارند. می‌توان از یک سیستم نامتقارن برای نشاندادن اینکه فرستنده پیام همان شخصی است که ادعا می‌کند استفاده کرد که این عمل اصطلاحا امضاء نام دارد. RSA شامل دو تبدیل است که هرکدام احتیاج به بتوان‌رسانی ماجولار با توانهای خیلی طولانی دارد:


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


به بیان ساده‌تر چنانچه متنی از شخصی برای دیگران منتشر شود، این متن شامل متن اصلی و همان متن اما رمز شده توسط کلید اختصاصی همان شخص است. حال اگر متن رمزشده توسط کلید عمومی آن شخص که شما از آن مطلعید رمزگشایی شود، مطابقت متن حاصل و متن اصلی نشاندهنده صحت فرد فرستنده آن است، به این ترتیب امضای فرد تصدیق می‌شود. افرادی که از کلید اختصاصی این فرد اطلاع ندارند قادر به ایجاد متن رمز‌شده‌ نیستند بطوریکه با رمزگشایی توسط کلید عمومی این فرد به متن اولیه تبدیل شود.
اساس سیستم RSA این فرمول است: X = Yk (mod r)
که X متن کد شده، Y متن اصلی، k کلید اختصاصی و r حاصلضرب دو عدد اولیه بزرگ است که با دقت انتخاب شده‌اند. برای اطلاع از جزئیات بیشتر می‌توان به مراجعی که در این زمینه وجود دارد رجوع کرد. این شکل محاسبات روی پردازنده‌های بایتی بخصوص روی ۸ بیتی‌ها که در کارتهای هوشمند استفاده می‌شود بسیار کند است. بنابراین، اگرچه RSA هم تصدیق هویت و هم رمزنگاری را ممکن می‌سازد، در اصل برای تایید هویت منبع پیام از این الگوریتم در کارتهای هوشمند استفاده می‌شود و برای نشاندادن عدم تغییر پیام در طول ارسال و رمزنگاری کلیدهای آتی استفاده می‌شود.
سایر سیستمهای کلید نامتقارن شامل سیستمهای لگاریتم گسسته می‌شوند مانند Diffie-Hellman، ElGamal و سایر طرحهای چندجمله‌ای و منحنی‌های بیضوی. بسیاری از این طرحها عملکردهای یک‌ـ‌طرفه‌ای دارند که اجازه تاییدهویت را می‌دهند اما رمزنگاری ندارند. یک رقیب جدیدتر الگوریتم RPK‌ است که از یک تولیدکننده مرکب برای تنظیم ترکیبی از کلیدها با مشخصات مورد نیاز استفاده می‌کند. RPK یک پروسه دو مرحله‌ای است: بعد از فاز آماده‌سازی در رمزنگاری و رمزگشایی (برای یک طرح کلید عمومی) رشته‌هایی از دیتا بطور استثنایی کاراست و می‌تواند براحتی در سخت‌افزارهای رایج پیاده‌سازی شود. بنابراین بخوبی با رمزنگاری و تصدیق‌هویت در ارتباطات سازگار است.
طولهای کلیدها برای این طرحهای جایگزین بسیار کوتاهتر از کلیدهای مورد استفاده در RSA‌ است که آنها برای استفاده در چیپ‌کارتها مناسب‌تر است. اما ‌RSA‌ محکی برای ارزیابی سایر الگوریتمها باقی مانده است؛ حضور و بقای نزدیک به سه‌دهه از این الگوریتم، تضمینی در برابر ضعفهای عمده بشمار می‌رود. • یادداشت تاریخی: رمز ژولیوس سزار
ژولیوس سزار سردار و امپراطور روم باستان نیز از روش جایگزینی مشابهی در نامه های سری خود استفاده می کرد، با قانون: «هر حرف پیام اصلی در پیام رمزی با 3 حرف بعدش در ترتیب حروف الفبا جایگزین شده» (مثلا C با F ). به عنوان مثال اگر او می خواست دستور دهد: CROSSING THE RUBICON (عبور از خط مرزی) پیام رمزی به این شکل در می آمد: FURVV LQJWK HUXEL همانطور که می بینید، علاوه بر رمزنگاری دستور متن دستور نیز خلاصه شده و حتی شکسته تا به کم شدن اندازه هر کلمه پیام اصلی کمتر آشکار باشد.
به این روش به طور ساده اینگونه می توان نگاه کرد: شما (رایانه مبدا) پیام رمزی برای ارسال به یک دوست (رایانه مقصد) نوشته ایدکه در آن هر حرف پیام اصلی با 2حرف بعدش در ترتیب الفبا عوض شده. پس حرف A می شود C و B می شود D. شما قبلا قانون رمزنگاری(کلید) را به دوست مورد اعتماد خود اطلاع داده اید که کد هست: «دو حرف به جلو». دوست شما پس از دریافت پیام قادر به رمزگشائی پیام است. اما هر کس دیگری که پیام رمزی را می بیند فقط پیامی بی معنا را ملاحظه می کند.
همان مورد بالا برای رایانه ها هم صادق است، اما البته ، کلیدها معمولا خیلی طولانی ترند. اولین الگوریتم عمده متقارن که در ایالات متحده برای رایانه ها توسعه یافت استاندارد رمزگذاری داده ها (DES) بود که در دهه 1970 مورد استفاده قرار گرفت. DES از کلید 56 بیتی استفاده می نمود.
از آنجا که با گذشت زمان کامپیوتر ها به طور فزایندهای سریعتر از رایانه های دهه70 شدند، کارشناسان امنیتی دیگر استاندارد DES را برای مصارف رمزنگاری رایانه ای امن ندانستند- هر چند که یک کلید 56 بیتی می توانست بیش از 70 کادریلیون (میلیون میلیارد)ترکیب احتمالی ارائه دهد (70,000,000,000,000,000)، اما حملات آزمایش و خطا یا brute force (به معنای حملاتی که به سادگی تلاش می کند هر ترکیب ممکن را در جهت پیدا کردن کلید درست امتحان کند) به آسانی می توانست از داده ها در مدت کوتاهی رمزگشایی کند. از آن زمان به بعد بود که DES جای خود را به استاندارد رمزگذاری پیشرفته (AES) داد، که از کلیدهای 128 ، 192 یا 256 بیتی استفاده می کرد. اکثر مردم بر این باورند که AES برای مدت طولانی استانداردی امن برای رمزگذاری باقی می ماند: مثلا یک کلید 128 بیتی می تواند بیش از
300.000.000.000.000.000.000.000.000.000.000.000ت کیب ممکن از کلیدهای احتمالی را ایجاد کند .


4-رمز نگاری با کلید عمومی
یکی از نقاط ضعف در شیوه رمزنگاری با کلید متقارن آن است که 2 کاربر فرستنده و گیرنده که در ارتبط با یکدیگرند پیش از هر چیز نیاز به بستر امنی برای انجام این کار دارند، در غیر اینصورت، مهاجم به راحتی می تواند اطلاعات لازم را از جریان تبادل داده گلچین کرده و بدست آورد. در ماه نوامبر سال 1976، مقاله ای در مجله IEEE Transactions در زمینه تئوری اطلاعات منتشر شد ، تحت عنوان «دستورالعمل های جدیدی در رمزنگاری» (New Directions in Cryptography)، و این مشکل در مورد شیوه متقارت در ان مطرح شد و راه حل برای آن ارائه شد به نام : «رمز نگاری باکلید عمومی»
این روش که به نام رمزنگاری با کلید نامتقارن (asymmetric-key) نیز شناخته می شود، از دو کلید مختلف به طور همزمان بهره می برد، به عبارت دیگر ترکیبی است از یک کلید خصوصی و یک کلید عمومی. کلید خصوصی تنها برای کامپیوتر شما (مبدا) شناخته شده است، در حالی که کلید عمومی توسط کامپیوتر شما را به هر کامپیوتری که میخواهد ارتباطی امن با آن برقرار کند اعطا می شود و برای رایانه های مقصد شناخته شده است. برای رمزگشایی پیام رمز شده، کامپیوتر مقصد باید کلید عمومی را که توسط کامپیوتر مبداء ارائه می شود داشته باشد و کلید خصوصی ای که خود استفاده می کند. هر چند پیام ارسال شده از یک کامپیوتر به دیگری در نگاه اول امن نخواهد بود زیرا کلید عمومی مورد استفاده برای رمزگذاری منتشر شده و در دسترس هر کسی می باشد، اما هر کسی که آن را در اختیار دارد نمی توانید آن را بدون کلید خصوصی بخواند. جفت کلید ها بر اساس اعداد اول طویل اند (عدد اول عددی است که تنها مقسوم علیه های آن خودش و عدد 1 می باشد، مانند 2 ، 3 ، 5 ، 7 ، 11 و غیره). این امر سیستم را بسیار امن می کند، چون اساسا بینهایت عدد اول در دسترس وجود دارد، به این معنی که تقریبا بینهایت ترکیب ممکن برای کلیدها وجود دارد. یکی از برنامه های رمزنگاری با کلید عمومی بسیار محبوب Pretty Good Privacy (PGP) است، که اجازه می دهد تا شما تقریبا هر چیزی را به رمز درآورید.
رایانه فرستنده سند را با کلید متقارن کدگذاری می کند، سپس کلید متقارن را با کلید عمومی کامپیوتر گیرنده کدگذاری می کند. کامپیوتر گیرنده با استفاده از کلید خصوصی ابتدا به رمزگشایی کلید متقارن پرداخته. سپس با استفاده از کلید متقارن به رمزگشایی سند می پردازد.
برای پیاده سازی رمزنگاری کلید عمومی در مقیاس بزرگ ، مانند آنچه یک وب سرور امن ممکن است نیاز داشته باشد، نیاز به یک رویکرد متفاوت است. این همان جایی است که گواهی های دیجیتال وارد میدان می شوند. گواهی دیجیتال (digital certificate) در واقع یک قطعه کد منحصر به فرد و یا یک عدد بزرگ است که بیان می کند که سرویس دهنده وب توسط منبع مستقلی که به عنوان مرجع اجازه دهنده گواهینامه (certificate authority) شناخته شده قابل اعتماد است. اجازه دهنده گواهی نامه به عنوان واسطی عمل می کند که هر دو رایانه به آن اعتماد دارند. این واسط مشخص می کند که آیا هر کدام از رایانه های مبدا یا مقصد همانی است که باید باشد یا خیر، و پس از آن امکان استفاده از کلید عمومی هر یک از کامپیوترها را برای رایانه های مجاز دیگر فراهم می کند.

‏5- SSL و TLS
پیاده سازی متداولی که برای رمزنگاری کلید عمومی مورد استفاده قرار می گیرد سوکت لایه ای ایمن (Secure Sockets Layer) نام دارد. این فنآوری اصلا توسط نت اسکیپ توسعه یافته است. اس اس ال یک پروتکل امنیتی اینترنت مورد استفاده توسط مرورگرهای اینترنتی و سرویس دهنده های وب برای ارسال اطلاعات حساس است. SSL امروزه به بخشی از پروتکل های کلی امنیتی به نام لایه امنیتی حمل و نقل اطلاعات یا Transport Layer Security) TLS) تبدیل شده است.

آیا تاکنون به حرف s به دنبال عبارت "http" هر زمان که وارد آدرسی شدید که نیازمند به جمع آوری اطلاعات حساس شما مانند شماره کارت های اعتباری ، درفرم وب سایت داشته اند دقت کرده اید؟

در مرورگر رایانه شما، از دو راه متفاوت می توانید بفهمید چه هنگامی از یک پروتکل ایمن ، مانند TLS استفاده می کنید. یکی زمانی که متوجه شوید که عبارت http در نوار آدرس با https جایگزین شده و دیگر، یک علامت قفل کوچک را در نوار وضعیت در پایین پنجره مرورگر را می بینید. هنگامی که شما قصد دسترسی به اطلاعات حساس خود، مانند حساب بانکی آنلاین و یا سرویس انتقال وجه مانند PayPal یا پرداخت گوگل (Google Checkout) دارید، احتمال این وجود دارد با این نوع تغییر فرمت مواجه شده و می فهمید که اطلاعات شما به احتمال زیاد همراه با تدابیر امنیتی بالا رد و بدل می شود.
‏TLS و خود SSL استفاده قابل توجهی از گواهی نامه ها می کنند. پس از آنکه مرورگر رایانه شما درخواست بارگذاری یک صفحه امن کرد و s را به عبارت "http" افزود، مرورگر کلید عمومی و گواهی را می فرستد و 3 چیز را چک می کند:1) گواهی از جانب بخش قابل اعتمادی می آید2) گواهی در حال حاضر معتبر است و3) که گواهی ارتباطی با سایتی که از آن می آید دارد یا نه.
نماد قفل اجازه می دهد بدانید که از رمزنگاری استفاده می کنید.

سپس مرورگر از کلید عمومی برای رمزگذاری به طور تصادفی کلید متقارن انتخاب شده استفاده می کند. رمز نگاری کلید عمومی محاسبات زیادی دارد ، بنابراین اغلب سیستم ها از ترکیبی از رمزنگاری کلید عمومی و کلید متقارن استفاده می کنند. هنگامی که دو کامپیوتر جلسه امنی با هم برقرار می کنند، یک کامپیوتر کلید متقارن ایجاد کرده و با استفاده از رمزنگاری کلید عمومی به کامپیوتر دیگر می فرستد. پس از آن 2 کامپیوتر میتوانند با استفاده از رمزنگاری کلید متقارن با هم ارتباط برقرار کنند. هنگامی که جلسه ارتباط تمام شد، هر یک از کامپیوترها، کلید متقارن مورد استفاده در آن جلسه را باطل می کنند. هر جلسه دیگری نیاز به ایجاد یک کلید متقارن جدید و تکرار روند بالا خواهد داشت.

6- الگوریتم آمیزش (Hashing Algorithm)
کلید مورد استفاده در رمزنگاری کلید عمومی بر مبنای مقدار آمیزشی (hash value) است. این مقدار، ارزشی است که از محاسبه تعداد پایه های ورودی با استفاده از الگوریتم آمیزشی (hashing algorithm) بدست می آید. اصولا ، ارزش آمیزشی خلاصه ای از مقدار اولیه می باشد. نکته مهم در مورد مقدار آمیزشی این است که تقریبا استنتاج عدد ورودی اصلی بدون دانستن داده های مورد استفاده برای ایجاد ارزش آمیزشی غیر ممکن است. در اینجا یک مثال ساده :
می توانید بفهمید که بدست آوردن مقدار 1,525,381 که از ضرب اعداد 10,667 در 143بدست آمده چه قدر سخت است. اما اگر بدانید که یکی از عوامل ضرب عدد 143 بوده (مثلا هر عددی قرار است 143 برابر شود) ، سپس محاسبه مقدار 10667 بسیار آسان خواهد بود. رمز نویسی کلید عمومی در واقع بسیار پیچیده تر از این مثال است ، اما از همین این ایده بهره می گیرد.
به طور کلی کلید های عمومی از الگوریتم های پیچیده و اعداد آمیزشی بسیار بزرگ برای رمزنگاری استفاده می کنند، از جمله اعداد 40 بیت و یا حتی 128 بیتی. عدد 128 بیتی دارای 2128 یا ،
3,402,823,669,209,384,634,633,746,074,300,000,000, 000,000,000,000,000,000,000,000,000,000
ترکیب ممکن و مختلف دارد- تلاش برای پیدا کردن این ترکیب درست مانند پیدا کردن یک دانه خاص شن و ماسه در صحرای بزرگ آفریقا می باشد.

منبع:http://ictportal.mihanblog.com

Ehsan M
15th April 2012, 02:21 PM
AES _ Advanced Encryption Standard


http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf (http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf)

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد