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

Aros.kabir

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


پيشرفت علم رمز نگاري موجب به وجود آمدن روشهاي تحليل مختلفي شده است به گونه اي كه به طور متناوب سيستم هاي رمز مختلف شكسته شده اند . معروف ترين نمونه اين نوع سيستمها ماشين «انيگما » بوده است . انيگما ماشين رمز گذار و كد گذار وكد كننده اي بوده است كه حزب نازي در زمان جنگ جهاني دوم براي ارسال پيام ها يشان از طريق راديو به ساير نقاط استفاده مي كردند .
رمزنگاري كه به طور عمده به دو بخش رمزنگاري متقارن يا رمزنگاري با كليد خصوصي و رمزنگاري نامتقارن يا رمزنگاري با كليد عمومي صورت مي گيرد، تلاش مي كند براي ايجاد يك ارتباط سري از طريق سيستمهاي مخابراتي و شبكه هاي كامپيوتري مباحث مربوط به محرمانگي و احراز هويت، را تحت فرضهاي مشخص به درستي اثبات نمايد .
2- الگوريتم هاي رمزنگاري كليد خصوصي
رمزهاي كليد خصوصي بر مبناي نوع عملكرد ، چگونگي طراحي و پياده سازي و كاربردهايشان به دو گونه رمزهاي قطعه اي و رمزهاي دنباله اي تقسيم مي شوند . كه در هر يك از آ نها عملكرد رمز نگاري به صورت يك عملكرد دوجانبه بين دو طرف فرستنده و گيرنده مي باشد كه با ايجاد يك ارتباط اوليه با يكديگر روي كليد خصوصي توافق ميكنند به گونه اي كه دشمن آن كليد را نداند. فرستنده S مي خواهد پيام m1,….mi را به گونه اي به طرف گيرنده R بفرستد كه او بتواند به محتواي پيام دست يابد و در عين حال حريف مخالف A نتواند محتواي پيام را درك كند حتي اگر A تمامي آنچه بين R و S انتقال مي يابد را دريافت نمايد.
به همين منظور فرستنده S هر متن روشن mi رابه وسيله الگوريتم رمزگذاري E و كليد خصوصي به متن رمز شده تبديل ميكند ودريافت كننده نيزكه متن رمز شده را دريافت كرده مي تواند با الگوريتم رمز گشائي D و كليد خصوصي متن اصلي را بدست آورد.

2- 1- رمزهاي دنباله اي
در طراحي رمزهاي دنباله اي يك مولد بيت شبه تصادفي نقش توليد كننده رشته كليد را براي سيستم رمزدنباله اي دارد . در واقع اين مولد ميتواند مولد رشته كليد نيز محسوب شود . از ديدگاه رمز نگاري يك مولد رشته كليد امن بايد داراي سه پارامتر مهم زير باشد :
1- پريود رشته كليد توليد شده بايد به حد كافي بزرگ باشد تا با طول پيام ارسال شده سازگاري داشته باشد .
2- دنباله بيت خروجي حاصله از مولد بايد به راحتي قابل توليد كردن باشد .
3- بيتهاي خروجي بايد به سختي قابل پيش بيني باشند .
در واقع با در اخثيار داشتن مولد و اولين n بيت خروجي a(0) ، a(1) …… . a(n-1) از لحاظ محاسباتي پيش بيني بيت n+1 ام يعني a(n+1) در دنباله با احتمال بيشتر از ½ بايد غير ممكن باشد.
حال مسئله اصلي اين است با كدام مبنا واصولي ميتوان اين نتيجه گيري را انجام داد كه سيگنال هاي خروجي از يك مولد رشته كليد به سختي قابل پيش بيني است ؟ به طور كلي اصولي قابل بررسي و كاربردي ارائه شده است تا امنيت مولد هاي بيت را ضمانت كند . در واقع تا كنون روشهاي بسياري براي توليد رشته كليدهاي امن پيشنهاد شده است و در مقابل نيز تحليل هائي طرح شده است كه با توجه به پيچيده ترشدن دنباله ها به صورت ماهرانه تري به تحليل دنباله ها مي پردازند. در ادامه به برخي از روشهاي توليد بيت هاي شبه تصادفي مي پردازيم.
2-1 -1- ساختار مولد هاي بيت شبه تصادفي و رمزهاي دنباله اي
غير قابل پيش بيني بودن يك دنباله همانند تصادفي بودن آن تعبير مي شود براي اينكه يك دنباله تصادفي باشد پريود آن بايد به حد كافي بزرگ باشد و همچنين تكه هاي گوناگون درون دنباله داراي توزيعي تا حد ممكن يكنواخت باشند. در اينجا به طور خلاصه چندروش توليد بيت هاي شبه تصادفي ودنباله هاي شبه تصادفي شرح داده شده است .در اين روش ها به طور مشخص ثبات هاي انتقال خطي براي ساختن مولدها به كار گرفته شده اند.
2-1- 2- مولدهاي همنهشتي خطي (LCG)
در اين روش براي توليد اعداد شبه تصادفي از روابط بازگشتي نظير x j+1=axj+b بهره گرفته ميشود .در اينجا سه تا ئي a) ، b ، m ) پارامترهائي را مشخص ميكنند ،كه مولد را شرح ميدهند از اين سه تائي به عنوان كليد مخفي ميتوان استفاده كرد.با توجه به اينكه x0 هسته مولد ميباشد ، اگر پارامترها بدقت انتخاب شوند اعدادي نظير xj به صورت تكراري نخواهيم داشت مگر آنكه تمامي اعداد صحيح درون فاصله [0,m-1] در خروجي ظاهر شده باشند .« بوير» نشان داد كه دنباله هاي توليد شده توسط LCG ها از نظر رمز نگاري امن نيستند . درواقع با در اختيار داشتن قطعه اي طولاني ازدنباله ميتوان با روشهائي پارامترهاي m و b و a را بازسازي نمود .
2-1- 3- ثبات هاي انتقال پس خور ) FSR (
دنباله هاي مورد استفاده در رمزنگاري مي توانند بر مبناي ثبات هاي انتقال طراحي بشوند حتي وقتي كه داراي پس خوري خطي باشند . يك ثبات انتقال پس خور از N فليپ فلاپ و يك تابع پس خور تشكيل شده است . تابع پس خور هر عنصر جديد همانند t ) ) a از دنباله را به صورت جزئي از عناصري كه از قبل توليد شده اند همانند a(t-1) ، …… a(t-n-1) ، a(t-n) بيان مي كند . گونه اي از توابع پس خور وجود دارند كه به صورت زير عمل ميكنند:
a(t) =g( a(t-1) , a(t-2) ……… , a(t-n+1)) Å a(t-n)
بسته به اينكه آيا تابع g خطي است (با عملگر Xor تنها قابل اجراست ( يانه ،مولد يك ثبات انتقال پس خور خطي ( LFSR ) يا ثبات انتقال پس خور غير خطي ( NLFSR ) خوانده مي شود.
پريود دنباله توليد شده بوسيله يك FSR به تعداد مراحل ذخيره سازي و جزئيات اتصال پس خور بستگي خواهد داشت و بطور كلي حداكثر پريود يك دنباله كه توسط يك FSR داراي n مرحله توليد ميشود ، 2 n خواهد بود .
2-1- 4- ثبات هاي انتقال پس خور غير خطي (NLFSR )
دياگرام حالت گونه هائي از FSR ها ميتواند شامل چرخه هاي كوچك باشد و حالات تكراري داشته باشد و دنباله اگر در يكي از اين حالات قرار بگيرد ممكن است نا امن شود . يك روش مناسب طراحي ثبات انتقال n مرحله اي كه دنباله هائي با حداكثر پريود 2 n توليد مي نمايد و دنباله هاي « دي بروئن » مي باشد.كه تعداد دنباله هاي ممكن n مرحله اي آن به بزرگي 2 (2n-1)-n ميباشد.كه همگي آنها داراي توزيعهاي ايده آلي ميباشند .اما اين دنباله ها كه از ثبات هاي انتقال غير خطي ساخته ميشوند داراي مشكلاتي براي پياده سازي توسط الگوريتمهاي شناخته شده هستند . همچنين توليد سريع اين دنباله ها به سختي صورت مي گيرد . همچنين برخي از خواص همبستگي بين عناصر توليد شده مي تواند راهكارهاي مناسبي براي تحليل اين دنباله ها ايجاد نمايد .
2-1- 5- ثبات هاي انتقال پس خور خطي (LFSR)
اين ثبات ها مدت ها براي كدهاي كنترل خطا ، آزمايشهاي VLSI و مخابرات طيف گسترده مورد استفاده بوده اند و از جمله مهمترين اجزاء در ساختار مولدهاي شبه تصادفي مي با شند آنها توابع پس خوري به شكل زير دارند .
a(t) =c1 a(t-1) Å c2 a(t-2) Å …………. Å c(n-1) a(t-n-1) Å a(t-n)
c i Î [0,1]
و با چند جمله اي پس خور زير نشان داده ميشوند .
f(n) = 1+ c1x + c2x2 + ……..+ c( n-1) x ( n-1) + x(n)

به طور كلي براي اينكه حداكثر پريود ممكن 2n-1 را براي دنباله خروجي از يك LFSR داشته باشيم ، چند جمله اي پس خور آن مي بايد اوليه باشد . تعداد چند جمله اي هاي اوليه درجه n از رابطه f (2 n –1)/n بدست مي آيد كه (n) f نمايانگر تابع اويلر مي باشد كه تعداد اعداد صحيح مثبت و اول كوچكتر از عدد n را نشان ميدهد .
به هر صورت با توجه به توابع توزيع احتمال اين دنباله ها با حداكثر پريود ديده مي شود كه خواص آماري مطلوبي در اين دنباله ها به وجود مي آيد . اما در برابر اين خصوصيات مولد هاي شبه تصادفي وبه علت استفاده گسترده از ثبات هاي انتقال در اين گونه مولدها روش هاي تحليل فراواني نيز براي تحليل دنباله خروجي حاصل طرح شده كه استفاده از اين ثبات ها را در ساختار مولدهاي بيت شبه تصادفي دچار مشكل مي كند .
2- 1-6- كاربردهاي رمزهاي دنباله اي ،مزايا و معايب
بسياري از رمزهاي دنباله اي كاربردي بر مبناي LFSR ها عمل مي نمايند و از آنجائيكه يك ثبات انتقال در واقع آرايه اي از بيت هاي حافظه و يك سري فيدبك مي باشد و با يك سري Xor قابل پياده سازي است ، مي توان امنيت قابل توجهي را تنها با تعداد كمي گيت منطقي بدست آورد .بنابراين رمزهاي دنباله اي مي توانند براي مصارف سخت افزاري بسيار مؤثر و كارا باشند .
اما در عين حال مشكلي كه LFSR ها و در نتيجه رمزهاي دنباله اي مبتني بر آنها دارند ، ناكارآمد بودن آنها در نرم افزار است . در واقع براي مناسبت هاي نرم افزاري چندجمله ايهاي فيدبك و تعداد فيدبك ها بسيار مهم مي باشد. در حاليكه مؤثر انتخاب نكردن اين چندجمله ايها امكان حملات وابستگي را نيز ممكن است فراهم آورد .
بنابراين رمزهاي دنباله اي حتي انواع ساده تر آنها در اجراهاي نرم افزاري نمي توانند سريعتر از رمزهاي قطعه اي عمل نمايند . رمزهاي دنباله اي به علت پياده سازي مؤثرتر سخت افزاري كاربردهاي فراواني در صنايع نظامي به خصوص خطوط مخابرات نظامي دارند . از آنجا كه در اينگونه رمزها هر يك از بيت هاي داده هاي اصلي به صورت مستقل رمز مي شوند ، بكارگيري اينگونه رمزها در لينك هاي مخابراتي پر از اغتشاش و نويز به جهت امكان آشكارسازي و تصحيح خطاها مؤثرتر مي باشد . در عين حال كه براي رمز نمودن حجم عظيمي از داده ها بعلت سرعت اجراي بالا، رمزهاي دنباله اي مي توانند گزينه مناسبي باشند . همانطور كه در سيستم هاي امنيت مخابراتي و رمزنگاري نظير BEU ها ديده مي شود .
تحليل و آناليز نمودن رمزهاي دنباله اي نيز معمولاً ساده تر از رمزهاي قطعه اي صورت مي گيرد . در عين حال امكان طرح حملات وابستگي بر روي اينگونه سيستم ها كه بر مبناي ثبات هاي انتقال خطي عمل مي نمايند ، بيشتر است اغليب رمزنگارها سعي مي نمايند اجزاء مختلف اينگونه الگوريتم ها را در حالتي غيرخطي تركيب نمايند و يا از ثبات هاي انتقال غيرخطي استفاده نمايند تامصونيت وابستگي لازم پديد آيد .
 

Aros.kabir

عضو جدید
2- 1-7- نمونه هاي رمزهاي دنباله اي پياده سازي شده
رمزهاي دنباله اي بسياري در طرح هاي مختلف پياده سازي شده اند .
A5 يك الگوريتم رمز دنباله اي است كه براي رمز نمودن سيستم ارتباط گروهي موبايل و يا در واقع سيستم مخابراتي GSM به كار مي رود . اين الگوريتم براي رمز نمودن لينك ارتباطي ميان گوشي تلفن به ايستگاه پايه به كار مي رود .
الگوريتم XPD/KPD كه توسط شركت هيوز طراحي شده است ، در راديوهاي تاكتيكي نظامي ارتش و تجهيزات جهت ياب به كار رفته است .
الگوريتم رمز دنباله اي NaNoTEQ كه نام يك شركت الكترونيكي در آمريكاي جنوبي است براي رمز نمودن ارتباطات و مراسلات از طريق فاكس در اداره پليس آمريكاي جنوبي بكار رفته است .
مي توان انواع ديگر رمزهاي دنباله اي طرح شده را بيان نمود ، اما آنچه مشخص است اينگونه رمزها در تجهيزات مخابراتي و سخت افزاري كاربرد گسترده و فراوان دارند . به خصوص در خطوط راديوئي كه امكان اغتشاشات و نويزهاي فراوان در آنها موجود مي باشد . اما به علت سرعت نامناسب اجراي نرم افزاري آنها ، براي استفاده در شبكه هاي كامپيوتري و يا ايجاد امنيت در پروتكل هاي امنيت اينترنت بكار نمي روند .
2-2 - رمز قطعه اي
رمزهاي قطعه اي كه از جمله پركاربردترين رمزهاي كليدخصوصي هستند ، به علت قابليت هاي فراوان كه در اجراي سريعتر و برقراري امنيت و ايجاد مقاومت در برابر انواع حملات متن منتخب و ساير انواع حمله هاي رمزنگاري دارند ، يكي از بهترين گزينه ها در ايجاد اهداف طرح هاي رمزنگاري مي باشند . يك رمز قطعه اي قدرتمند قابليت آن را دارد كه توسط روش هاي مختلف بكارگيري به عنوان يك رمز دنباله اي قوي استفاده شود و يا اينكه ايجاد يك سامانه احراز هويت نمايد .بر همين مبنا همواره سعي مي شود يك الگوريتم رمز قطعه اي بر مبناي راهكارها و دستاوردهاي نوين روش هاي طرح اينگونه رمزها و با توجه به تحليل هاي جديد تر سامانه هاي رمز و حمله هائي كه بر مبناي اين تحليل ها برروي رمز هاي قطعه اي طرح مي شوند ، بدست آيد ودر عين حال يك ساختار منظم ، قابل توسعه و در عين حال نوين از رمزهاي قطعه اي معرفي شود كه در صورت نياز به توسعه در طول كليد سري مورد استفاده و يا طول قالب داده هاي ورودي به الگوريتم ، اصل ساختار الگوريتم توانائي اين توسعه را بدون از دست دادن ساختار كلي شبكه رمز ، عملگرها و مبناهاي بكارگرفته شده داشته باشد . الگوريتم رمز طرح شده بايد بتواند امنيت مورد نياز اطلاعات محرمانه را ايجاد نمايد و حاشيه امنيت لازم براي حمله هاي نوين ارائه شده و قابل توسعه را نيز داشته باشد . در طراحي الگوريتم ، امنيت كامل وقابل اثبات در مقابل حمله هاي مؤثر و پركاربردي نظير حمله هاي تفاضلي و خطي و سايرحمله هائي كه مبناي تازه تري براي تحليل رمزهاي قطعه اي دارند ، هدف اوليه بوده و در ادامه نيزپياده سازي و اجراي موثر رمز كه لازمه طراحي مي باشد جزء اهداف در نظر گرفته مي شود . چنين طرحي مي تواند با ايجاد حداكثر امنيت ممكن در يك سامانه اطلاعاتي به سرعت اجرا شود و حوزه كاربردهاي مختلف اطلاعات را برآورده سازد .در واقع با توجه به نوع اطلاعات مورد استفاده از لحاظ استراتژيك و تاكتيكي بودن مي توان در كاربردهاي مختلف مورد نياز طرح كلي اين الگوريتم را استفاده نمود .
رمزهاي قطعه اي كه تعريف آنها بر مبناي تركيب توابع جايگزيني و جايگشتي مي باشد ، ساختارهاي متعددي دارند كه هر يك مزايا و كاربردهاي متعدد مربوط به خود را دارند . خواص رمزهاي قطعه اي امن را به صورت زير مي توان بيان نمود .
1- دستيابي به متن اصلي از طريق متن رمزگذاري شده بدون در اختيار داشتن كليد بايد غيرممكن باشد . مي توان اين خصلت را با يكطرفه بودن الگوريتم رمزنگاري مقايسه نمود . در واقع كليد خصوصي الگوريتم دريچه تابع رمزنگاري مي باشد كه با در اختيار داشتن آن مي توان از متن رمز شده ، متن اصلي را بدست آورد .
2- آگاهي از الگوريتم نبايد سبب تضعيف رمز شود . مخفي نگاه داشتن جزئيات الگوريتم در امنيت آن نقشي ندارد و امنيت الگوريتم بايد تنها به كليد سري بستگي داشته باشد .
3- هر بيت متن رمزشده بايد به تمامي بيت هاي متن اصلي وابسته باشد . در اينصورت كوچكترين تغييردر متن اصلي ، متن رمزشده متفاوتي ايجاد مي نمايد . به اينگونه از رمزها كامل گفته مي شود .
4- هر بيت متن رمزشده مي بايست به تمامي بيت هاي كليد سري وابسته باشد كه در اينحالت در صورت كوچكترين تغيير در كليد ، متن رمزشده متفاوتي ايجاد مي شود .
5- تغيير هر بيت در داده هاي ورودي بدون تغيير كليد ، بايد موجب تغييرات عمده در قطعه خروجي شود .
6- تغيير هر بيت در كليد سري بدون تغيير متن اصلي ، بايد موجب تغييرات عمده در متن رمزگذاري شده گردد .
7- الگوريتم بايد داراي عمل جانشيني بيت ها تحت كنترل داده هاي ورودي وكليد باشد .
8- الگوريتم بايد داراي عملكرد جابجائي بيت ها تحت كنترل داده هاي ورودي وكليد باشد .
9- الگوريتم رمز نبايد داراي ساختار جبري ساده باشد . در غيراينصورت تابع رمزگذاري با يك رابطه داراي بيان جبري ساده معادل خواهد شد .
10- طول متن اصلي بايد با طول متن رمز شده برابر باشد .
11- تمامي كليدهاي سري بكار گرفته شده بايد رمز قوي توليد نمايند .
خصوصياتي كه بيان شد شرايط لازم براي طرح يك رمز قطعه اي قوي مي باشد در حاليكه شروط لازم و كافي براي ارزيابي و حصول اطمينان از امنيت هر سيستم رمزي ، مقاومت آن در برابر حملات نوع اول ، دوم و سوم در رمزنگاري مي باشد .
در سال هاي گذشته بعلت نيازهاي فراواني كه براي كاربردهاي غيرنظامي رمزنگارها وجود داشته است ، بحث استاندارد سازي الگوريتم هاي رمزنگاري مطرح شده است . كه نمونه هاي استاندارد شده آن در سال هاي گذشته DES با ساختاري به صورت فيستل و در سال هاي اخير AES بوده كه الگوريتم رايندال را با ساختاري نوين و به گونه اي مربعي بكار برده است .
الگوريتم DES از انجام عمليت بر روي قطعه هاي 1،4،6و 28 بيت بهره مي گيرد كه اين عملكردهاپياده سازي الگوريتم را براي مصارف نرم افزاري با مشكل روبرو مي سازد . اما الگوريتم هائي نظير FEAL كه به منظور پياده سازي سريع نرم افزاري طراحي شده است ، از زير عمليات هائي بر روي قطعات 8 بيتي بهره مي گيرد . بنابراين ديده مي شود كه يك الگوريتم رمزنگاري متناسب با پياده سازي نرم افزاري لزوماً از عملوندهاي منطبق با بايت و يا ضرايبي از بايت بهره مي گيرد .
2-2-1- احراز هويت و شناسائي و توابع درهم ساز
كاربردهاي گوناگون رمز هاي قطعه اي را مي توان توسط مد هاي كاربردي كه تعيين كننده گستره وسيع كاربردي رمزهاي قطعه اي در مصارفي نظير احراز هويت پيام ، مولد هاي بيت شبه تصادفي ، توابع درهم ساز و مديريت كليد مي باشد ، بيان نمود .
رمزهاي قطعه اي در حالات ECB ، OFB ، CBC و CFB بكاربرده مي شوند . حالات بكارگيري رمز در مدهاي CFB و OFB در ايجاد مولدهاي بيت شبه تصادفي و طراحي رمزهاي دنباله اي كاربردهاي فراوان دارند. در حاليكه مد OFB داراي مزايائي نظير امنيت بالا ، انتشار خطاي محدود و ايمني در برابر حمله هاي لغت نامه اي و فعال مي باشد و در عين حال سنكرون نبودن اين گونه سيستم ها مي تواند معايبي را در اين نوع كاربرد به وجود آورد .
مزاياي بكارگيري روشهاي CBC و CFB را مي توان در جامعيت پيام هاي ارسالي و قابليت دسترسي گسترده به داده ها و تامين ايمني در برابر حملات لغت نامه اي و مهم تر از همه تامين كد هويت و شناسائي پيام دانست .كه قابليت احراز هويت رابه كاربردهاي رمزهاي قطعه اي مي افزايد . اما اين دو حالت بكارگيري عيوب عمده اي نظير انتشار خطا در خطوط ارتباطي را مي توانند در بر داشته باشند .
استاندارد X909 الگوريتم DES را در حالت CBC به عنوان روش احراز هويت بيان مي كند كه در هر هفته در حدود5/1 تريليون دلار از طريق آن ميان مؤسسات مالي به شكل عمده مبادله مي شد .
تكنيك هاي فراواني نيز موجود مي باشد كه در آنها نشان داده شده است كه از رمزهاي قطعه اي مي توان در طراحي توابع درهم ساز كه از ملزومات روش هاي احراز هويت و امضاهاي ديجيتال مي باشند ، استفاده نمود .
3 - طراحي الگوريتم رمز قطعه اي
الگوريتم بايد به گونه اي طراحي شود كه معيارهاي طراحي رمزهاي استاندارد پيشرفته را برآورده سازد كه اين معيارها در زير آورده شده اند .
¨ طول كليد الگوريتم بايد حداقل 128 بيت باشد . در واقع طبق آخرين استاندارد هاي ارائه شده توسط NIST براي جلوگيري از حمله هاي جستجوي فضاي جامع كلي حداقل طول كليد بايد 80 بيت باشد كه استاندارد آن را براي پياده سازي مناسب نرم افزاري 128 در نظر مي گيرند .
¨ الگوريتم تا حد ممكن كليد ضعيف و نيمه ضعيف نداشته باشد .
¨ پياده سازي الگوريتم بايد روي زمينه هاي مختلف سخت افزاري و نرم افزاري مؤثر و كارا باشد . به خصوص شرايطي كه پياده سازي نرم افزاري الگوريتم را با توجه به طرح حاضر ، مؤثرتر مي سازد فراهم شود .
¨ طرح الگوريتم در برابر تبادل هاي موجود ميان امنيت و اجرا در كاربردهاي مختلف در رمزنگاري بايد بسيار منعطف باشد و قابليت استفاده براي كاربردهائي نظير مولد بيت هاي شبه تصادفي امن ، توابع در هم ساز و MAC را داشته باشد وبراي مقاصدي نظير احراز هويت و مديريت كليد نيز قابل بكارگيري باشد .
¨ طرح الگوريتم بايد بسيار ساده باشد و به سهولت قابل بيان و آناليز باشد و در عين حال قابل توسعه باشد .
اما با توجه به شرايطي كه الگوريتم هاي رمز قطعه اي امن بايد داشته باشند معيارهاي زير نيز در طراحي الگوريتم و برقراري امنيت آن بايد مورد نظر باشد .
¨ الگوريتم به گونه اي طرح شود كه عملكرد هاي رمزگذاري و رمزگشائي آن تاحد ممكن يكسان عمل نمايند و اجراي سخت افزاري و نرم افزاري آنها مشابه يكديگر باشند .
¨ الگوريتم داراي طرحي موازي باشد و با استفاده از اين الگوها پياده سازي سريعتر و مؤثرتري داشته باشد .
¨ امنيت الگوريتم در برابر تحليل هاي شناخته شده در رمزنگاري همانند حمله هاي خطي و تفاضلي و تحليل هائي كه مبناي آنها اين نوع حمله ها مي باشند ، تضمين شده باشد . همچنين حاشيه امنيت لازم را براي حمله هاي تازه تر داشته باشد .
¨ طرح توليد زيركليد هاي الگوريتم ، امن و مؤثر باشد كه در برابر حمله هاي مرتبط با كليد بتواند استقامت لازم را ايجاد نمايد .
¨ طرح كليد الگوريتم قابليت پيش محاسبه شدن را با حداكثر سرعت ممكن داشته باشد و يا اينكه با حداقل حافظه مورد نياز و حداكثر سرعت به صورت شناور بتواند زيركليد ها را توليد نمايد .
در طراحي الگوريتم رمز طرح حاضر مي بايست تمامي نكاتي را كه به عنوان اهداف طراحي بيان شد ، لحاظ شود .


3- 1- طراحي امنيت و اجراي مؤثر الگوريتم رمز قطعه اي
هر يك از الگوريتم هاي رمز قطعه اي لزوماً بايد خصوصياتي را برآورده سازند كه اين خصوصيات شرايط لازم براي طرح يك رمز قطعه اي قوي مي باشند در حاليكه شروط لازم و كافي براي ارزيابي و حصول اطمينان از امنيت هر سيستم رمزي ، مقاومت آن در برابر حملات نوع اول ، دوم و سوم در رمزنگاري مي باشد .
حمله هاي طرح شده بر روي رمزهاي قطعه اي نيز مي تواند روش هائي براي طرح اينگونه رمز ها پيشنهاد نمايند . در واقع طرح اينگونه حمله ها ، ويژگي ها و معيارهاي لازم در رمز هاي قطعه اي را براي مقاومت در برابر اين حمله ها مشخص مي نمايند . در ادامه چند حمله مختلف بر روي رمزهاي قطعه اي كه در اثر برخي خصوصيات تابع رمزگذاري طرح شده ، آورده مي شود.
3-2- انواع حملات قابل اجرا بر روی الگوريتم
v آزمون جامع فضاي كليد: اين حمله با در اختيار داشتن چند زوج متن اصلي و متن رمز شده متناظر با آن صورت مي گيرد وعبارتست از آزمودن تمامي 2 m كليد ممكن به منظور يافتن كليد اصلي رمزنگاري كه همان كليد سري مي باشد .
v حمله مكمليت : اين حمله توسط خاصيت مكمليت صورت مي گيرد . در واقع اگر X و Y دو بردار باينري به طول n باشند و X+Y=(1,…,1) باشد ، در اينصورت اين دو بردار مكمل يكديگر مي باشند و خواهيم داشت Y=X ¢ .
حال اگر f مبين تابع يك رمز قطعه اي باشد و C=f(P,K) ، آنگاه رمز داراي خصلت مكمليت است اگر: " P , " K : f(P ¢ ,K ¢ )=C ¢ در اينصورت اگر فضاي كليد رمزنگاري K به دو زير فضاي S و S ¢ كه K=S È S ¢ باشد در اينصورت آزمون جامع فضاي كليد را مي توان فقط در فضاي S اعمال نمود .
v حمله از طريق ويژگي بسته بودن : براي هر رمز قطعه اي به طول n و كليدي به طول m هر كليد يك تابع جابجائي از بردارهاي باينري به طول n را مشخص مي نمايد . اگر G مجموعه تمام اين 2 m جابجائي را نشان بدهد و داشته باشيم H={ Ti*Tj : Ti ,Tj Î G } و * نماد تركيب نگاشت ها باشد ، آنگاه G بسته است اگر H=G باشد . در واقع G بسته است اگر براي هر Ti و Tj در G بتوان Tk را در G به گونه اي يافت كه براي تمام متون اصلي داشته باشيم :
(Ti*Tj )(P) = Tk(P)
اما از آنجا كه يكي از روش هاي متداول افزايش امنيت رمز هاي قطعه اي رمزنگاري متوالي هر قطعه مي باشد ، ويژگي بسته بودن يك رمز تاثير اين روند تكراري را از بين خواهد برد و موجب ضعف در امنيت رمز مي گردد .
ساير حمله هاي طرح شده بر روي رمزهاي قطعه اي همانند حمله ملاقات در ميانه ، حمله از طريق ويژگي آفيني و ساير حمله ها مي توانند ويژگي هاي نامطلوب رمزهاي قطعه اي را آشكار نمايند . اما بهترين و مؤثرترين تحليل هاي ارائه شده بر روي اينگونه رمزها حمله هاي خطي وتفاضلي هستند كه از جمله قدرتمندترين حمله ها ي نوع دوم و سوم بر روي رمز هاي قطعه اي مي باشند . بنابراين امنيت بسياري از رمز هاي قطعه اي به استحكام رمز در برابر اين دو حمله بستگي خواهد داشت . در واقع معيار اصلي طراحي هررمز قطعه اي مقاومت دربرابر اينگونه حمله ها و ساير انواع حمله هاي طرح شده با توجه به شرايط تحليل گر و آگاهي هاي او مي باشد و تحليل هائي كه در ابتدا بيان شد به عنوان شروط لازم طراحي بكار مي روند .
در ميان دسته بندي تحليل هاي رمزي چهار نوع عمومي از حمله هاي رمزنگاري وجود دارد كه در هر كدام از آنها فرض مي شود كه تحليل گر آگاهي لازم وكامل را از الگوريتم رمزگذاري مورد استفاده در اختيار دارد . اين تحليل ها به صورت زير دسته بندي مي شوند .
3-3- چهار نوع عمومي از حمله هاي رمزنگاري
3-3-1- حمله فقط متن رمز شده
در اين نوع حمله تحليل گر متن رمز شده پيام هاي مختلف را كه همه آنها با استفاده از يك الگوريتم مشابه رمز شده اند ، در اختيار دارد . كار تحليل گر بدست آوردن متن اصلي پيام هاي مختلف و يا يافتن كليد استفاده شده در عملكرد رمزگذاري است تا بوسيله آن ساير پيام هاي رمز شده را بتواند رمزگشائي نمايد .
در واقع با در اختيار داشتن C1=EK(P1) تا Ci=EK(Pi) تحليل گر سعي مي نمايد P1,…,Pi و K و يا الگوريتمي كه بتواند Pi+1 را از Ci+1=EK(Pi+1) نتيجه بگيرد ، بدست آورد .
3-3-2- حمله متن روشن معلوم
در اين حمله تحليل گر نه تنها به متن رمزي پيام هاي مختلف بلكه به متن روشن اين پيام ها نيز دسترسي دارد و كار اصلي او نتيجه گرفتن كليد و يا كليد هاي استفاده شده براي رمزگذاري پيام ها و يا بدست آوردن الگوريتمي كه بتواند پيام هاي جديد رمزشده با كليد مشابه را رمزگشائي نمايد ، مي باشد . در واقع با در اختيار داشتن C1=EK(P1) و P1 تا Ci=EK(Pi) و Pi بتواند كليد K و يا الگوريتمي را بدست آورد كه Pi+1 را از Ci+1=EK(Pi+1) حاصل نمايد .


3-3-3- حمله متن روشن منتخب
در اين حمله تحليل گر نه تنها به متن رمز شده و متن روشن مربوط به آن دسترسي دارد بلكه مي تواند متون اصلي را نيز براي رمزگذاري انتخاب نمايد . اين تحليل از يك حمله متن روشن معلوم قويتر مي باشد زيرا تحليل گر مي تواند بلوك هاي متن روشن را براي رمزنمودن تعريف نمايد و قطعه اي را انتخاب نمايد كه اطلاعات بيشتري درباره كليد از آن بدست آيد . كار تحليل گر نتيجه گرفتن كليد مورد استفاده در رمزگذاري پيام و يا بدست آوردن الگوريتمي براي رمزگشائي پيام هاي رمز شده جديد با كليد مشابه مي باشد . در واقع با در اختيار داشتن C1=EK(P1) و P1 تا Ci=EK(Pi) و Pi كه در آن P1 تا Pi را انتخاب نموده است ، كليد K و يا الگوريتمي براي بدست آوردن Pi+1 از Ci+1=EK(Pi+1) حاصل نمايد .
3-3-4- حمله تطبيقي متن روشن منتخب
اين نوع تحليل يك مورد خاص از حمله متن روشن منتخب مي باشد كه در آن تحليل گر نه فقط مي تواند متن روشن را كه رمزگذاري مي شود انتخاب نمايد بلكه مي تواند انتخاب خود را بر مبناي نتايج رمزگذاري قبلي اصلاح نمايد . در يك حمله متن روشن منتخب يك تحليل گر ممكن است فقط قادر به انتخاب يك بلوك بزرگ از متن روشن براي رمزگذاري باشد .اما در يك حمله تطبيقي از نوع متن روشن منتخب او مي تواند بلوك كوچكتري از متن روشن انتخاب نمايد و ساير بلوك ها را بر مبناي نتايج اين بلوك ابتدائي انتخاب نمايد و به همين ترتيب ادامه دهد .
چند نوع حمله ديگر بر روي سيستم هاي رمزنگاري وجود دارد كه در موارد خاص مي توان از آنها استفاده نمود . همانند حمله متن رمزي منتخب كه در آن تحليل گر امكان انتخاب متون رمزشده را نيز دارد و يا حمله كليد منتخب كه در اين حمله تحليل گر آگاهي هائي درباره روابط ميان كليد هاي مختلف در اختيار دارد . اما تحليل هائي كه بر مبناي حمله هاي متن روشن و متن روشن منتخب صورت مي گيرند بسيار معمول تر و واقعي تر مي باشند و تحليل هاي مؤثري بر مبناي اين حمله ها تا كنون طرح شده است كه بر روي بسياري از رمزها مؤثر بوده اند . به طور مثال تحليل هاي خطي و تفاضلي كه بر روي DES مؤثر بوده اند از اين گونه مي باشند . در بكارگيري حمله هاي متن روشن منتخب بيشترين آگاهي از سيستم رمز در اختيار تحليل گر قرار دارد بنابراين قويترين نوع حمله از نوع متن روشن منتخب مي باشد كه در آن تحليل گر آگاهي كامل به الگوريتم رمزنگاري مورد استفاده دارد و امكان انتخاب و نمونه گيري از سيستم رمز را نيز خواهد داشت . بنابراين رمزي كه در برابر اين نوع حمله مقاوم باشد در بدترين شرايط مي تواند امنيت كافي را اعمال نمايد .
 

Aros.kabir

عضو جدید
3-4- ملزومات طرح مؤثر و كاراي نرم افزاري الگوريتم رمز.
3-4-1- در الگوريتم از پرش هاي شرطي در حلقه دروني الگوريتم بايد اجتناب شود . هر تغيير غير قابل پيش بيني در جريان كنترل الگوريتم به طور طبيعي موجب اختلال در عملكرد مقاوم پردازش و در نتيجه افزايش تعداد سيكل هاي ساعت مورد نياز ، خواهد شد . بنابراين به طور مشخص هر عملگر و يا دستور همانند if ، then و يا else در زبان C و يا اسمبلي موجب پرش در جريان اجرا خواهد شد . پرش ها همچنين آسيب پذيري رمز را در برابر حمله هاي زماني كه در آورده شده ، افزايش مي دهد .
3-4-2- از عملگرهائي كه طبيعتاً ساختارهاي سنگيني دارند استفاده نشود . در اين دسته بندي مي توان عملگرهاي ضرب و تقسيم و ساير عملگرهائي را كه بر روي پردازنده ها به سختي اجرا مي شوند، قرار دارند . به طور مثال يك عملگر چرخش/انتقال متغير ، ( كه مقدار چرخش و يا انتقال در مرحله اول مشخص نمي باشد ) بر روي پردازنده پنتيوم نياز به 4 سيكل ساعت براي اجرا خواهد داشت و در عين حال با هيچ عملگر ديگري نمي تواند به طور همزمان اجرا شود بنابراين به صورت چند زير مجموعه از عملگرهاي ساده انجام مي شود و زمان مورد نياز اجراي آن بيشتر از يك عملگر ساده تنها خواهد بود .
3-4-3- در طرح الگوريتم بايد تا حد ممكن تعداد متغيرهاي مورد نياز را محدود نمود . بسياري از پردازنده هاي مدرن شامل تعداد زيادي ثبات چندمنظوره مي باشند . اما در برخي اين تعداد ثبات چند منظوره بسيار كم مي باشد . به طور مثال در پنتيوم تنها هفت ثبات چندمنظوره وجود دارد و در صورتيكه در حلقه دروني الگوريتم تعداد زيادي متغير بكار رود تمامي آنها در ثبات ها قرار نمي گيرند و به علت نياز به دسترسي به حافظه ، اجرا سنگين تر خواهد شد .
3-4-4- اندازه جداول بكار رفته تا حد ممكن بايد كوچك باشد . هرچند كه جداول بزرگتر از نظر رمزنگاري مناسبتر مي باشند اما انواع كوچكتر آنها براي اجراي سريعتر نرم افزاري مطلوب تر هستند . با توجه به پردازنده هاي كنوني جداول بايد به گونه اي در نظر گرفته شوند كه بيش از چهار كيلو بايت براي ذخيره سازي نياز نداشته باشند .
3-4-5- در طرح عملگرهاي بكار رفته بايد تا حد ممكن از الگو هاي موازي بسيار استفاده شود . ايده عمومي بكارگيري عملگرهاي مستقل از يكديگر و اجراي همزمان و موازي با هم اين عملگرها مي باشد . اين الگو مي تواند تا حد بسيار زيادي در افزايش سرعت اجرا مؤثر باشد .
نكاتي كه بيان شد بسيار ساده مي باشند اما با بهره گيري از آنها مي توان تا حد بسيار زيادي پياده سازي مؤثر و سرعت اجراي بالاي نرم افزاري را براي الگوريتم ايجاد نمود .
4- مديريت كليد
يك سيستم مخابراتي امن شامل اجزا و قسمت هائي همچون الگوريتم رمزنگاري ، پروتكل هاي قراردادي و … مي باشد . با فرض اينكه تمامي اين اجزاء قابليت اطمينان لازم و كافي را داشته باشند ، هنوز يك مسئله باقي است و آن كليد هاي بكاررفته در مبادلات صورت گرفته است .
با توجه به اينكه در صورت غيرقابل شكست بودن الگوريتم هاي رمزنگاري و پروتكل هاي مورد استفاده ، بكارگيري كليدهاي ضعيف و يا استفاده نامناسب از كليدهاي مورد نياز مي تواند نقاط ضعف بسياري را براي تحليل امنيت باقي بگذارد .
در دنياي واقعي مديريت كليد سخت ترين قسمت رمزنگاري محسوب مي شود . طراحي الگوريتم هاي رمزنگاري امن ساده نيست اما با تكيه بر تحقيقات آكادميك بسيار مي توان به نتايج قابل اطميناني رسيد . اما از آنجا كه امنيت تمامي ارتباطات بايد تنها به كليدهاي بكاررفته داشته باشد ، نگاه داشتن سري كليدها بسيار سخت تر خواهد بود . بطوريكه بسياري از تحليل گرها و رمزشكن ها به سيستم هاي رمز كليد همگاني و الگوريتم هاي متقارن از طريق مديريت كليد آنها حمله مي نمايند . از اينرو طراحي مطمئن و قدرتمند روند مديريت كليد نقش بسزائي در امنيت تبادل ها دارد .
مواردي كه در يك پروسه مديريت كليد بايد در نظر گرفته شود فسمت هاي مختلفي را شامل مي شود كه هر كدام مي توانند معيارهائي براي اجراي يك روند مناسب در اختيار بگذارند .
4-1 توليد كليدها
الگوريتم توليد كليد مي بايست شرايط مناسبي را برقرار نمايد تا كليدهاي ضعيف توليد نشود .بر همين مبنا روند توليد كليدها بايد به گونه اي باشد كه فضاي كليد كاهش يافته به وجود نيايد و از تمامي بيت هاي كليد در نظر گرفته شده استفاده شود . به طور مثال اگر الگوريتمي از يك كليد 56 بيتي استفاده مي نمايد و برنامه اي براي توليد كليدها از قالب ASCII استفاده نمايد به طور طبيعي بيت مرتبه بالاتر هر بايت صفر در نظر گرفته مي شود كه موجب كاهش فضاي كليد و در نتيجه امكان تحليل رمز مورد استفاده شايد تا هزاران بار سريعتر مي گردد .
همچنين انتخاب كليدهاي ضعيف مي تواند منافذي را براي تحليل امنيت الگوريتم رمز ايجاد نمايد . از آنجا كه حملات جستجوي فضاي كليد در ابتدا كليدهاي ملموس تررا مورد نظر قرار مي دهد ، تحليل گر مي تواند لغتنامه اي از كليدهاي معمول در نظر گرفته و به اصطلاح حمله لغتنامه اي انجام دهد .
كليدهاي خوب معمولاً رشته اعداد تصادفي توليد شده توسط يك پروسه اتوماتيك مي باشند . توليد اين كليدها بايد توسط يك منبع تصادفي قابل اطمينان و يا يك مولد بيت شبه تصادفي امن صورت بگيرد . همچنين كليدهاي ضعيف الگوريتم رمزنگاري مورد استفاده بايد تا حدامكان حذف شود و يا مشخص باشند تا در هنگام توليد و انتخاب كليدها استفاده نگردند .
به عنوان نمونه هائي از الگوريتم هاي توليد كليد مي توان به استاندارد ANSI X9.17 اشاره نمود كه روشي براي توليد كليد توسط الگوريتم رمز كليد خصوصي 3 DES ارائه مي دهد و مي تواند كليدهاي جلسه مناسب و يا اعداد شبه تصادفي توليد نمايد .
در صورتيكه EK(X) تابع رمزگذاري با 3 DES بر روي X با كليد K باشد و V0 يك هسته 64 بيتي امن و T مهر زماني آن باشد ، براي توليد كليد تصادفي Ri به صورت زير عمل مي شود :
Ri=EK(EK(Ti)+Vi)
Vi+1= EK(EK(Ti)+Ri)
كه كليدهاي 64 بيتي توليد مي نمايد و با به هم چسباندن دنباله هاي 64 بيتي مي توان نمونه هاي بلندتر نيز بدست آورد .
4-2 ارسال و توزيع كليدها در شبكه هاي بزرگ
در يك مبادله اطلاعاتي امن مسئله ارسال كليد جلسه يك الگوريتم متقارن مسئله قابل تعمقي است . رمزنگاري با الگوريتم هاي كليد عمومي اين مشكل را مي توانند حل نمايند . هر چند كه ممكن است تكنيك هاي مناسب را در شرايط گسترده در اختيار نگذارند
از آنجائيكه معمولاً كانال هاي امن مخابراتي به سادگي قابل حصول نيستند روش هاي مختلفي براي ارسال كليد سري يك مبادله متقارن در نظر گرفته شده است . استاندارد X 9.17 دو نوع كليد به صورت كليدهاي رمزگذاري كليد كه براي رمز نمودن ساير كليدها براي توزيع بكار مي روند و كليدهاي داده كه براي رمز نمودن ترافيك پيام ها بكار مي روند در نظر گرفته است كه كليد هاي رمزگذاري كليد معمولاً به صورت تعريفي و يا قراردادي توزيع مي شوند .
روش ديگر مي تواند تقسيم كليدهاي ارتباطي به بخش هاي مختلف و ارسال هر يك از طريق يك كانال باشد كه لزوماً ممكن است روشي مؤثر و قابل بكارگيري نباشد . بنابراين شايد بهترين روش ها براي تبادل كليدهاي جلسه استفاده از الگوريتم هاي تبادل كليد بر مبناي روش هاي كليد عمومي و يا حتي الگوريتم هاي كليد خصوصي باشد .اما توزيع كليد در شبكه هاي بزرگ به لحاظ تبادل هاي بسيار كليد ميان كاربران مشكلاتي را به همراه دارد . به طور مثال در يك شبكه با 6 كاربر تعداد 15 تبادل كليد مورد نياز مي باشد .بنابراين در شبكه هاي گسترده ايجاد و استفاده از يك مركز خدمات كليد امن و يا سازماندهي ساختار هاي كليد عمومي (PKI) مي تواند بسيار مؤثر باشد .
4-3 تصديق كليدها
در تمامي تبادل هاي كليد در مبادلات امن مي بايست كليد هاي ارسال شده مورد بررسي و تصديق قرار گيرند . به طور مثال اگر كليد جلسه ارتباطي توسط كليد رمزگذاري كليد رمزشده باشد گيرنده ميتواند به اين واقعيت اعتماد نمايد كه كليد رمزگذاري كليد جلسه تنها در اختيار فرستنده مي باشد .
يك روش مطمئن براي تصديق و احراز اصالت كليدها مي تواند استفاده از پروتكل هاي امضاء ديجيتال براي امضاء كليدها باشد و يا استفاده از مركز توزيع و خدمات كليد امن براي انتقال امضاء كليدهاي عمومي بكارگرفته شده باشد كه در اينصورت بايد اطمينان كافي به اين مركز وجود داشته باشد .
در اين ميان ممكن است خطاهائي در ارسال كليد به وجود آيد و از آنجائيكه كليدها ممكن است براي رمزگشائي چندين مگابايت از متون رمزشده بكاررود لذا لزوم بررسي و تصحيح خطاها وجود دارد كه لزوماً اين خطاها بايد آشكارسازي شوند .يكي از پركاربردترين روش هاي بكاررفته براي اين كار رمزنمودن يك مقدار ثابت با كليد دريافت شده و ارسال 2 تا 4 بايت متون رمزشده با كليد مي باشد در سمت ديگر نيز همين عمل انجام مي شود و سپس با انطباق مقادير رمز شده مشخص مي شود كه كليد صحيح ارسال شده و يا نياز به تصحيح و ارسال دوباره دارد .
4-4 - طول عمر كليدها
هيچ يك از كليدهاي رمزنگاري براي مدت نامعيني بكار گرفته نمي شوند . براي هر كاربرد رمزنگاري مي بايست يك سياست امنيتي بر مبناي مدل هاي امنيتي تعريف شده در سيستم در نظر گرفته شود گه در آن طول عمر كليدها نيز مشخص شده باشد . كليدهاي متفاوت طول عمرهاي متفاوت دارند . در سيستم هائي كه بر روي كانال هاي مخابراتي خاص و حساس عمل مي نمايند ، كليدها بسته به ارزش و مقدار داده هاي اصلي و مقادير رمز شده و اعتبار آنها در طول مدت تعيين شده بايد نسبتاً طول عمرهائي كوتاه داشته باشند . براي سيستم هائي كه در هر ثانيه چندين گيگا بايت اطلاعات را مبادله مي نمايند نيز نسبت به خطوط كم ترافيك تر تغيير كليدها بيشتر صورت مي گيرد . كليدهاي رمزگذاري كليد معمولاً به طور متناوب تغيير نمي كنند . اين كليدها به منظور تبادل كليد به كار مي روند كليدهاي خصوصي رمزهاي كليد عمومي نيز طول عمرهاي متفاوتي وابسته به كاربردهايشان دارند .
از جمله موارد ديگري كه در مديريت كليد بايد مورد نظر قرار گيرد مسائل مربوط به انهدام كليدهاي مصرف شده ، ذخيره نمودن و Backup گرفتن از آنها مي باشد كه در طرح يك سيستم جامع بايد مد نظر باشد .
5- مديريت كليد توسط روشهاي كليد عمومي
الگوريتم هاي كليد عمومي مي توانند مديريت كليد را بسيار ساده تر نمايند هر چند كه مشكلات مربوط به خود را دارند . در واقع زماني كه كار برها در يك شبكه گسترده زياد مي شوند بدست آوردن كليد عمومي طرف مورد نظر مبادله مي تواند مشكلاتي را به همراه داشته باشد . فرستنده براي ارسال پيام را از وي و يا يك بانك اطلاعاتي شامل كليد عمومي كاربران دريافت نمايد كه اين عمل امكان اجراي حملات شخص در ميانه ( Man in the middle attack ) و جايگزيني كليد نفوذگرها توسط آنها با كليد عمومي گيرنده را به وجود مي آورد .
گواهي هاي عمومي در واقع كليد عمومي كاربري است كه توسط يك مركز قابل اطمينان امضاء مي شود و امكان جايگزيني كليدها را برطرف مي نمايد . گواهي ها معمولاً در برگيرنده اطلاعات شخصي دارنده كليد مي باشند و نقش مهمي را در تعدادي از پروتكل هاي كليد عمومي همانند PEM و X509 دارند . سازماندهي ساختارهاي مطمئن كليد عمومي مي تواند تمامي جزئيات وجود را در بر بگيرد . برقراري ساختارهاي كليد عمومي PKI از جمله روش هائي است كه مي تواند امنيت و در عين حال مديريت كليد را در شبكه هاي كامپيوتري تضمين نمايد . اين ساختارها را مي توان به صورت مجموعه سخت افزارها ، نرم افزارها ، كاربران ، سياست ها و رويه هائي كه براي ايجاد مديريت ، ذخيره ، توزيع و انهدام گواهي هاي مبتني بر رمزنگاري با كليد عمومي مورد نياز مي باضشد ، تعريف نمود . در سازماندهي ساختار هاي كليد عمومي دو عمل اصلي توليد گواهي (Certification) و تعيين اعتبار (Validation) مورد نياز مي باشند تا خصوصياتي نظير محرمانگي ، تماميت ، احراز هويت ، عدم انكار و كنترل مدون را برآورده سازند .

6- الگوريتم هاي تبادل كليد
تبادل و يا توزيع كليدهاي جلسه رمزنگاري ميان دو طرف مبادله به طور معمول از روش هاي كليد عمومي انجام مي شود . معروف ترين پروتكل تبادل كليد ، الگوريتم ديفي – هلمن مي باشد كه بر مبناي روش هاي كليد عمومي و با تكيه بر دشواري محاسبه لگاريتم گسسته در يك ميدان متناهي صورت مي گيرد . اما اين روش در برابر حملات شخص در ميانه ضعيف مي باشد كه براي برطرف نمودن چنين منافذي پروتكل هاي ايستگاه به ايستگاه ( Station to Station) ارائه شده كه در آن دو طرف مبادله اطلاعات مورد تبادل را امضاء نموده و از يك مركر بيروني امن و مطمئن نيز براي گرفتن گواهي اعتماد استفاده مي نمايند .
 

a110_135

عضو جدید
الگوریتم رمزنگاری RSA

الگوریتم رمزنگاری RSA

باسلام ممنون میشوم درباره الگوریتم رمزنگاری RSA وحملات انجام شده بر آن اطلاعاتی کسب کنم
 

neda-paknahad

عضو جدید
سلام ميشه در مورد الگوريتم رمز نگاري GSM بيشتر توضيح بدين؟ممنون ميشم...چون خيلي بهش نياز دارم
 

Aros.kabir

عضو جدید
باسلام ممنون میشوم درباره الگوریتم رمزنگاری RSA وحملات انجام شده بر آن اطلاعاتی کسب کنم


[FONT=&quot]رمزنگاري كليد عمومي و[/FONT]rsa[FONT=&quot] :[/FONT]
[FONT=&quot]مروري كوتاه:[/FONT]
[FONT=&quot]رمزنگاري كليد مخفي: [/FONT][FONT=&quot]رمزنگاري سنتي كليد مخفي؛ از يك كليد تنها كه بين هر دو طرف گيرنده و فرستنده به اشتراك گذاشته شده است استفاده مي كند.اگر اين كليد فاش شود ارتباط به خطر مي افتد.همچنين اين روش از گيرنده در برابر پيام هاي جعلي ارسال شده كه ادامي كنند از طرف فرستنده ي خاصي مي ايند محافظت نمي كند.[/FONT]
[FONT=&quot]رمزنگاري كليد عمومي: [/FONT][FONT=&quot]اين روش كه رمزنگاري دوكليده نيز خوانده مي شود از دو كليد براي عمل رمز نگاري استفاده مي كند:[/FONT]
[FONT=&quot]يكي كليد عمومي كه توسط همه شناخته شده است.و براي به رمز درآوردن پيغام ها و تشخيص امضا ها مورد استفاده قرار مي گيرد.[/FONT]
[FONT=&quot]ديگري كليد خصوصي كه فقط گيرنده از آن اطلاع دارد و براي رمز گشايي پيغام و همچنين ايجاد امضا مورد استفاده قرار مي گيرد.[/FONT]
[FONT=&quot]اشكال سيستمهاي كليد مخفي[/FONT][FONT=&quot]: [/FONT]
[FONT=&quot]يك از اشكال هاي الگوريتم هاي بر پايه كليد متقارن اين است كه شما نياز به يك روش مطمئن براي انتقال كليد هاي طرفين داريد.به اين مفهوم كه يا از يك كانال امن اين كار را انجام دهند يا به منظور انتقال كليد همديگر را ملاقات كنند.اين ميتواند يك مشكل بزرگ باشد[/FONT]
[FONT=&quot]و قطعا كارآساني نيست.اشكال ديگر اين روش اين است كه شما براي ارتباط با هر شخصي كليدي جداگانه نياز داريد.[/FONT]
[FONT=&quot]سناريوي ارتباط:[/FONT]
[FONT=&quot]آليس وباب مي خواهند با هم مكالمه مطمئني داشته باشند طوري كه كس ديگري از اطلاعات مبادله شده در اين مكالمه با خبر نشود.درهمين زمان [/FONT]Eve[FONT=&quot] در حال استراق سمع است.[/FONT]
[FONT=&quot]آليس و باب ميتوانند خلبان دو جت نظامي يا دو تاجر اينترتي يا فقط دو دوست باشند كه مي خواهند با هم يك مكالمه ي خصوصي داشته باشند.آنها نمي توانند [/FONT]Eve[FONT=&quot] را از گوش دادن به سيگنال راديوي يا اطلاعات مبادله شده از طريق تلفن و .. باز دارند.پس چه كاري مي توانند انجام دهند تا اين ارتباط مخفي بماند؟[/FONT]
[FONT=&quot]رمزنگاري كليد خصوصي:[/FONT]
[FONT=&quot]يك راه حل اين است كه آليس و باب يك كليد دجيتالي را مبادله كنند.بعد وقتي هر دو از آن كليد آگاه شدند(ولي ديگران از آن بيخبرند).آليس از اين كليد استفاده مي كند تا پيغام ها را به رمز كرده و به باب بفرستد.باب نيز پيغام اوليه را با استفاده از اين كليد و رمزگشايي پيغام بازسازي مي كند.پيغام رمز شده براي [/FONT]Eve[FONT=&quot] قابل استفاده نيست .او كليد را نميداند پس نمي تواند پيغام اصلي را باز يابي كند.با يك الگوريتم رمزنگاري خوب اين طرح قابل اجراست. ولي مبادله كليد به طوري كه اين كليد از [/FONT]Eve[FONT=&quot] مخفي بماند يك معضل است.اين كار واقعا نياز به يك ارتباط رودرو دارد كه هميشه امكان پذير نيست.[/FONT]
[FONT=&quot]رمز نگاري كليد عمومي: اين رمزنگاري به صورت متفاوتي عمل مي كند.زيرا كليد را به دو قسمت كليد عمومي براي به رمز در آوردن و كليد خصوصي براي رمزگشايي تقسيم مي كند.اين ممكن نيست كه كليد خصوصي از كليد عمومي قابل تعيين باشد.همان طور كه در شكل مي بينيد؛باب يك جفت كليد توليد مي كند.يكي از كليدها كليد عمومي است كه بايد به اطلاع عموم (از جمله [/FONT]Eve[FONT=&quot]) برسد. و ديگري كليد خصوصي كه فقط خود باب از آن اطلاع دارد.هر كسي مي تواند از كليد عمومي باب براي ارسال پيغام به او استفاده كنند.ولي فقط باب مي تواند.از كليد خصوصي خودش براي رمز گشايي پيغام ها استقاده كند.اين طرح به آليس و باب اجازه مي دهد تا يك ارتباط امن را بدون ملاقات كردن هم داشته باشند.[/FONT]
[FONT=&quot]هر چند اگر [/FONT]Eve[FONT=&quot] بتواند به همان راحتي كه مي تواند به پيغام هاي مبادله شده بين باب و آليس گوش مي دهد آنها را دست كاري نيز كند؛ مي تواند كليد عمومي خود را جانشين كليد عمومي باب كند و سپس آليس از كليد عمومي او براي رمز كردن پيغام ها و فرستادن آنها استفاده مي كند.[/FONT]
Man in middle attack[FONT=&quot] : (حمله ي پل زدن به سطل)[/FONT]
[FONT=&quot]اين حمله براي ارتباطات رمز شده و پرتوكل هاي مبادله ي كليد مناسب است.ايده ي اين حمله اين است كه وقتي دو طرف در حال مبادله ي كليد هاي عمومي شان هستند مهاجم خودش را در بين دو طرف در خط ارتباط قرار مي دهد.سپس به مبادله كليد به صورت جداگانه با هر كدام از طرفين مي پردازد.سپس هر كدام از طرفين كليد عمومي خودش را به طرف ديگر مي دهد(كه البته هيچ گاه به دست طرف مقابل نمي رسد و در واقع هر كدام از اين دو در حال مبادله ي كليد با مهاجم هستند)مهاجم براي هر كدام از طرفين طرف دوم ارتباط امن را تشكيل مي دهد.سپس مهاجم براي هر كدام از اين دو ارتباط امن از كليد مناسبش استفاده مي كند.طرفين تصور مي كنند كه مكالمه امن ي انجام مي دهند ولي در حقيقت مهاجم همه چيز را شنيده است.[/FONT]
[FONT=&quot]پرهيز ازحمله ي پل زدن به سطل:[/FONT]
[FONT=&quot]روش معمول براي جلوگيري از حمله ي پل زدن به سطل اين است كه؛ از يك الگوريتم رمز گذاري كليد عمومي استفاده كنيم كه قابليت امضاي ديجيتالي را داشته باشد.براي برپايي چنين سيستمي طرفين بايد كليد عمومي ديگري را از قبل بداند(كه اين از مزيت اصلي رمز گذاري كليد عمومي مي كاهد. ) پس از توليد كليد خصوصي توليد شده طرفين امضاي ديجيتالي خود را براي هم مي فرستند.مهاجم كه خود را در وسط قرار داده ممكن است بتواند تا اين جاي ارتباط را گوش دهد ولي ديگر قادر نخواهد بود كه امضاي ديجيتالي را جعل كند. زيرا امضا ي ديجيتالي قابل جعل نيست.[/FONT]
[FONT=&quot]منتشر كردن كليد عمومي:[/FONT]
[FONT=&quot]فهرست كليد هاي عمومي[/FONT][FONT=&quot] براي اين ايجاد شد تا مشكل اين كه هر كاربر مي بايست يك كپي از كليد عمومي تمام اشخاص را داشته باشد تا با آنها ارتباط امن بر قرار كند را بر طرف كند.هر كاربري كليد عمومي خود را در فهرست ثبت ميكند و وقتي مثلا [/FONT]A [FONT=&quot]خواست تا به [/FONT]B [FONT=&quot] يك پيغام رمز شده بفرستد او كليد عمومي [/FONT]B[FONT=&quot] را از طريق فرستادن درخواست [/FONT][FONT=&quot]KUB[/FONT][FONT=&quot] به فهرست انجام مي دهد.[/FONT]
[FONT=&quot]مشكلات كليد ها:[/FONT]
· [FONT=&quot]ما ممكن است كليد خود را گم كنيم.[/FONT]
· [FONT=&quot]ما ممكن است فراموش كنيم كدام كليد براي چه كاري بود،[/FONT]
· [FONT=&quot] ما ممكن است يك كليد را به شخص اشتباهي بدهيم.[/FONT]
· [FONT=&quot]يك كسي ممكن است كليد ما را بدزدد.[/FONT]
· [FONT=&quot]يك كسي ممكن است از طريق پنجره وارد شود.[/FONT]
· [FONT=&quot] كسي ممكن است در را بشكند.[/FONT]
· [FONT=&quot] كسي ممكن است درخواست ورود به خانه را بكند و يك احمق هم به او اين اجازه را بدهد.[/FONT]
· [FONT=&quot] كسي ممكن است بتواند موفق به دريافت گواهيي شود كه به او اجازه انجام كار هايي فرا تر از آنجه لازم است را بدهد.[/FONT]
· [FONT=&quot] كسي ممكن است خانه را به آتش بكشاند و اغتشاش ايجاد كند.[/FONT]

[FONT=&quot]الگوريتم هاي كليد عمومي:[/FONT]
[FONT=&quot]الگوريتم هاي كليد عمومي از يك جفت كليد عمومي و خصوصي بر روي يك پيغام استفاده مي كنند.[/FONT]
· [FONT=&quot]فقط كليد خصوصي مي تواند پيغام رمز شده با كليد كليد عمومي را رمزگشايي كند.[/FONT]
· [FONT=&quot]همچنين فقط كليد عمومي قادر خواهد بود پيغام رمز شده با كليد خصوصي را رمز گشايي كند.[/FONT]
· [FONT=&quot]اگر شما باكليد عمومي من پيغامي را رمز كنيد. فقط من قادر به خواندن آن پيغام خواهم بود.[/FONT]
· [FONT=&quot]اگر شما بتوانيد پيغامي را با كليد عمومي من باز كنيد آن پيغام الزاما از طرف من آمده است.[/FONT]
· [FONT=&quot] اين طرح اولين بار توسط وايتفيلد ديفه و مارتين هلمن و به صورت مستقلانه اي در همين زمان يعني دهه ي 70 توسط رالف مركل پيشنهاد گرديد.[/FONT]
· [FONT=&quot] سازمان [/FONT]NSA [FONT=&quot] (سازماني سري در امريكا كه روي مباحث رمزنگاري فعاليت مي كند.)قبل از پيشنهاد هاي اين افراد به اين نتايج رسيده بود.[/FONT]
· [FONT=&quot]معمولا الگوريتم هاي كليد عمومي بسيار كند تر از الگوريتم هاي كليد متقارن هستند.[/FONT]
· [FONT=&quot]يك خصيصه ي قطعي كليد عمومي اين است كه كليد خصوصي از كليد عمومي قابل تعيين نباشد.و در مقابل حملات ”متن سادهِ انتخاب شده” مقاوم باشد.[/FONT]
· [FONT=&quot]در واقع تركيبي از سيستمهاي رمزگذاري كليد عمومي و متقارن كاربرد دارند.[/FONT]
· RSA[FONT=&quot] نوعي از الگوريتم رمز گذار بر پايه ي كليد عمومي است كه در گستره وسيعي از كاربردها به كار مي رود.پس اجازه دهيد در درباره [/FONT]RSA[FONT=&quot] بحث كنيم و بعد دوباره به بحث كلي درباره كليد عمومي برگرديم.[/FONT]
[FONT=&quot]ملزومات: [/FONT][FONT=&quot]تعيين كليد رمزگشايي از كليد رمزگذاري بايد غير ممكن باشد.[/FONT]
[FONT=&quot]انتخابي: [/FONT][FONT=&quot]هر كدام از دو كليد عمومي و خصوصي را بايد بتوان براي رمز گذاري و رمز گشايي به كار برد.[/FONT]
[FONT=&quot]توابع درب تله اي يا يك طرفه:[/FONT]
· [FONT=&quot]سيستم هاي رمز گذاري كليد عمومي بر پايه ي يك سري حيله هاي زيركانه ي رياضي كه با قدرت كامپيوتر در ارتباطند گسترش يافته اند.[/FONT]
· [FONT=&quot] رمزگذاري كليد عمومي بر پايه ي مسئله كه در رياضي با نام ”درب تله اي” شناخته مي شود كار مي كند.[/FONT]
· [FONT=&quot] يك درب تله اي يك فرمول رياضي است كه به آساني جلو مي رود ولي برگشت آن تقريبا غير ممكن است.[/FONT]
· [FONT=&quot] به عنوان مثال عمل ضرب كردن دو عدد بزرگ كار راحتي است ولي بدست آوردن فاكتور هاي اوليه ي آن عدد بزرگ بسيار مشكل است.[/FONT]
· [FONT=&quot] الگوريتم كليد عمومي بر اين اساس كار مي كند كه شخصي يك كليد عمومي بزرگ را انتشار مي دهد و ديگران قادر نيستند كه فاكتور هاي اوليه ي اين كليد را بدست آورند.[/FONT]
· [FONT=&quot] سازنده ي كليد فاكتور هاي اوليه ي كليد خود را ميداند و با استفاده از اين فاكتور ها پيغام هاي ديگران را كه با استفاده از كليد عمومي خودش رمز شده اند رمز گشايي مي نمايد.[/FONT]
· [FONT=&quot] ديگران كه فقط از كليد عمومي آگاهي دارند قادر به شناسايي كليد خصوصي نيستند.و دليل آن هم سختي تجزيه كردن عداد بزرگ مي باشد.[/FONT]
RSA​
· [FONT=&quot]تا كنون بهترين سيستم كليد عمومي شناخته شده [/FONT]RSA[FONT=&quot] نام دارد.اسم اين سيستم رمز گذاري بر گرفته شده از نام مولف هايش است.رونالد ال رايوست و ايديا شامير و لِونارد ام ادِلمًن[/FONT]
· RSA[FONT=&quot] توسط سه بنيان گذارش يعني رايوست و شايرمن و لونارد ام ادلمن به عنوان يك الگوريتم رمز گذاري كليد عمومي تجاري معرفي شد.امروزه اين الگوريتم توسط مرورگر هاي وب و برنامه هاي كلاينت [/FONT]E-Mail[FONT=&quot] ،تلفن هاي همراه و شبكه هاي محلي مجازي([/FONT]vpn[FONT=&quot])، برنامه هاي دسترسي ايمن ([/FONT]secure shell[FONT=&quot]) و در خيلي از جاهاي ديگر كاربرد دارد.اين درست است كه امنيت ي كه اين الگوريتم ايجاد مي كند جاي بحث دارد ولي با انتخاب كليد به اندازه ي كافي بزرگ مي توان جلوي اغلب حمله ها را گرفت.تا همين چند وقت پيش [/FONT]RSA[FONT=&quot] با قوانين صادرات و حق امتياز ها محدود شده بود ولي اكنون حق امتيازات منقضي شدند و قوانين صادرات ايالات متحده نيز شل شده اند.[/FONT]
· [FONT=&quot] اين الگوريتم بر پايه يك قانون درب تله اي كه از سختي فاكتور گرفتن از اعداد بزرگ استفاده مي كند؛ قرار گرفته است.[/FONT]
[FONT=&quot]
[/FONT]
 

Aros.kabir

عضو جدید
[FONT=&quot]تقابل [/FONT]PK[FONT=&quot] و[/FONT]SK[FONT=&quot] :[/FONT]
· [FONT=&quot]در رمزنگاري هاي كليد مخفي كليد رمز گذاري و كليد رمز گشايي يك كليد است.بطور كلي دو تابع وجود دارد يكي تابع رمزگذاري و ديگري معكوس آن تابع رمز گشايي.[/FONT]
· [FONT=&quot] در مقابل كليد مخفي ؛الگوريتم كليد عمومي قرار دارد.در چنين سيستمي دو كليد وجود دارد يكي كليد عمومي و ديگري كليد خصوصي.[/FONT]
[FONT=&quot]اعداد اول چه هستند؟[/FONT]
· [FONT=&quot]يك عدد اول؛ عددي است كه تنها بر خودش و يك قابل تقسيم باشد.[/FONT]
· [FONT=&quot] به عنوان مثال 10 عدد اول نيست زيرا بر اعداد 1و2و5 و10 بخش پذير است.ولي 11 يك عدد اول است زيرا تنها به خودش و 1 بخش پذير است.[/FONT]
· [FONT=&quot]اعدادي كه يك عدد بر آنها بخش پذير است فاكتور هاي آن عدد خوانده مي شود.فرايند پيدا كردن فاكتورها فاكتور گرفتن يا تجزيه نام دارد.[/FONT]
· [FONT=&quot]براي مثال تجزيه ي عدد 15 مي گوييم اين عدد از 3*5 بدست مي آيد ولي در مورد 6320491217 چطور؟[/FONT]
· [FONT=&quot] حال در مورد يك عدد 155 رقمي چطور؟يا 200 رقمي يا بيشتر؟به طور خلاصه تجزيه كردن اعداد قطعا از تعدادي مرحله تشكيل شده كه تعداد اين مراحل بابزرگ شدن عدد به صورت نمايي بالا مي رود.اگر يك عدد به مقدار كافي بزرگ باشد؛ زمان مورد نياز براي اجراي تمام مراحل تجزيه كردن ممكن است به قدري زياد باشد كه سالها به طول بيانجامد. [/FONT]
[FONT=&quot]حساب پيمانه اي:[/FONT]
[FONT=&quot]در رياضيات پيمانه اي تنها اعداد صحيح غير منفي كوچكتر از پيمانه مورد بررسي قرار مي گيرد.پس براي پيمانه ي [/FONT]n[FONT=&quot] ([/FONT]mod N[FONT=&quot]) تنها اعداد صحيح كه از [/FONT]0[FONT=&quot] تا [/FONT](N-1)[FONT=&quot] قابل حساب هستند و نتايج محاسبات تنها از [/FONT]0[FONT=&quot] تا [/FONT](N-1)[FONT=&quot] قابل قبول است.فكر كنيد زمان نظامي بر عددي بر پيمانه ي 2400 است.براي مثال 2200 بعلاوه 400 ([/FONT]10:00 PM plus 4 hours[FONT=&quot])جواب 2600 نمي شود.شما از صفر شروع مي كنيد.بنابراين [/FONT]2200+400 mod 2400[FONT=&quot] را بايد محاسبه كنيم كه مي شود:[/FONT]2600-2400=0200[FONT=&quot] و يا [/FONT]2:00[FONT=&quot] صبح. همچنين اگر از [/FONT]0[FONT=&quot] يا نصف شب شروع كنيم.شش برابر [/FONT]500[FONT=&quot] (بخوانيد شش بار 5 ساعت به جلو)[/FONT]3000 [FONT=&quot]نميشود.جواب [/FONT]0600[FONT=&quot] يا [/FONT]6:00[FONT=&quot] بعد از ظهر مي شود.اين حساب دقيقا مثل ساعت عمل ميكند.[/FONT]
A mod b=r[FONT=&quot] به اين معني كه [/FONT]a[FONT=&quot] بر [/FONT]b[FONT=&quot] تقسيم شده است و باقي مانده [/FONT]r[FONT=&quot] است.[/FONT]
[FONT=&quot]براي مثال :[/FONT]
[FONT=&quot]”[/FONT]mod[FONT=&quot] همان باقيمانده تقسيم است.“[/FONT]
22 mod 3 = 1
34 mod 2 = 0
18 mod 5 = 3
-4 mod 3 = 2 because (3)(-2) + 2 = -4
-16 mod 7 = 5 because (7)(-3) + 5 = -16
· [FONT=&quot]اعداد اول وقتي در رياضيات پيمانه اي بكار گرفته مي شوند ؛ داراي خواص سودمندي مختلفي هستند.[/FONT]
· [FONT=&quot]الگوريتم [/FONT]RSA[FONT=&quot] از اين خواص استفاده مي كند.[/FONT]
[FONT=&quot]اعداد نسبت به هم اول:[/FONT]
· [FONT=&quot] دو عدد نسبت به هم اولند اگر تنها فاكتور مشترك آنها يك باشد.[/FONT]
· [FONT=&quot] مثلا 10 و 21 نسبت به هم اولند.در حالي كه هيچكدام عدد اول نيستند.ولي نسبت به هم اولند زيرا عامل مشتركي ندارند عوامل 10:[/FONT] 1, 2, 5 and 10[FONT=&quot] و عوال مشترك 21 :[/FONT] 1, 3, 7 and 21.
· [FONT=&quot] تنها عاملي كه در هر دو ليست ديده مي شود 1 است.[/FONT]

[FONT=&quot]تابع [/FONT][FONT=&quot]فيِ اويلر:[/FONT]
[FONT=&quot]در قرن 18 يك رياضي دان به نام لِونارد اويلر تابع [/FONT]j(n)[FONT=&quot] را بر اين اساس تعريف كرد:[/FONT]
· j(n)[FONT=&quot] :تعداد اعداد كوچكتر از [/FONT]n[FONT=&quot] كه نسبت به [/FONT]n[FONT=&quot] اولند.اين تابع به نام في اويلير شناخته مي شود.[/FONT]
J)[FONT=&quot] به يوناني في خوانده مي شود و در مجامع رياضي تي و در مجامع ادبي تاي خوانده مي شود)[/FONT]
[FONT=&quot]پس براي مثال [/FONT]j(6)=2[FONT=&quot] زيرا تمام اعداد كوچكتر از 6 كه نسبت به 6 اول اند برابر است با:5و1 [/FONT]
[FONT=&quot]دو و چهاروسه با 6 عامل مشترك دارند.[/FONT]
· [FONT=&quot] در مورد [/FONT]j(7)[FONT=&quot] وضع چگونه است؟چون 7 عدد اول است تنها عوامل آن 1 و 7 هستند.پس هر عددي كه كوجكتر از 7 باشد نسبت به 7 اول است.پس حتي بدون هيچ محاسبه اي مي دانيم؛ 6 عدد كوچتر از 7 وجود دارد كه نسبت به 7 اول است.اين نتيجه را براي تمام اعداد اول ديگر مي توان تعميم داد.به طور كلي اگر [/FONT]p[FONT=&quot] عدد اولي باشد [/FONT]j(p)=p-1[FONT=&quot] مي باشد.[/FONT]
[FONT=&quot]هم پيمانگي:[/FONT]
[FONT=&quot]دو عدد صحيح [/FONT]a[FONT=&quot]و[/FONT]b[FONT=&quot] را هم پيمانه بر پايه ي [/FONT]n[FONT=&quot] گويند اگر [/FONT](a mod n)=(b mod n)[FONT=&quot] كه آن را به صورت [/FONT] a[FONT=&quot]همنهشت است با [/FONT]b[FONT=&quot] به پيمانه ي [/FONT]n[FONT=&quot]مي نويسيم.[/FONT]
[FONT=&quot]براي مثال:[/FONT]
file:///C:/DOCUME%7E1/ROYALS%7E1/LOCALS%7E1/Temp/msohtml1/01/clip_image002.jpg
[FONT=&quot]خواص همنهشتي:[/FONT]
file:///C:/DOCUME%7E1/ROYALS%7E1/LOCALS%7E1/Temp/msohtml1/01/clip_image004.jpg
[FONT=&quot]توان:[/FONT]
[FONT=&quot]به توان رساندن يعني قدرت دادن به يك عدد.مثلا [/FONT]23[FONT=&quot]يعني [/FONT] 2 * 2 * 2 = 8[FONT=&quot] در اين مثال 2 پايه و 3 نما بود.چيز هاي جالب و پر كاربردي در توان وجود دارد.[/FONT]
(bx) * (by) = bx+y
(bx)y = bxy
[FONT=&quot]چه اتفاقي در [/FONT]RSA[FONT=&quot] مي افتد؟[/FONT]
[FONT=&quot]بر پايه ي سختي عمل تجزيه اعداد بزرگ اين مراحل انجام مي شود:[/FONT]
· [FONT=&quot] دو عدد اول بزرگ انتخاب مي كنيم.[/FONT]p[FONT=&quot]و[/FONT]q
· [FONT=&quot] دو عدد [/FONT]n[FONT=&quot] و [/FONT]z[FONT=&quot] را به صورت روبرو محاسبه مي كنيم:[/FONT]
n = pq
z = (p-1)(q-1)
· [FONT=&quot]عدد [/FONT]E[FONT=&quot] را كوچك تر از [/FONT]N[FONT=&quot] طوري انتخاب مي كنيم كه عامل مشتركي با [/FONT]Z[FONT=&quot] نداشته باشد.يعني نسبت به [/FONT]Z[FONT=&quot] اول باشد.[/FONT]
· [FONT=&quot] عدد [/FONT]d [FONT=&quot]را طوري انتخاب مي كنيم كه [/FONT]ed-1[FONT=&quot] بر [/FONT]z[FONT=&quot] بخش پذير باشد.[/FONT]
· file:///C:/DOCUME%7E1/ROYALS%7E1/LOCALS%7E1/Temp/msohtml1/01/clip_image006.jpg
[FONT=&quot]كليد عمومي ما براي انتشار دادن آماده است.جفت اعداد [/FONT](n,e);[FONT=&quot]كليد عمومي را تشكيل مي دهد.[/FONT]
· [FONT=&quot] كليد خصوصي ما را نيز جفت اعداد [/FONT](n,d).[FONT=&quot]تشكيل مي دهند.[/FONT]
· [FONT=&quot] تابع رمزگذاري براي صورت رقمي كلمه [/FONT]m[FONT=&quot] به اين صورت است: [/FONT]file:///C:/DOCUME%7E1/ROYALS%7E1/LOCALS%7E1/Temp/msohtml1/01/clip_image008.jpg

· [FONT=&quot] تابع رمز گشايي براي كاراكتر رمز شده ي [/FONT]m[FONT=&quot] كه به صورت [/FONT]C[FONT=&quot] كد شده است به اين صورت[/FONT]
file:///C:/DOCUME%7E1/ROYALS%7E1/LOCALS%7E1/Temp/msohtml1/01/clip_image010.jpg
[FONT=&quot]مي باشد: [/FONT]

· [FONT=&quot]مقدار رقمي هر كاراكتر بايد از [/FONT]N[FONT=&quot] كوچكتر باشد.[/FONT]
[FONT=&quot]تمام فرمول هاي استفاده شده در [/FONT]RSA[FONT=&quot] :[/FONT]
· [FONT=&quot]تابع في اويلر[/FONT]
· file:///C:/DOCUME%7E1/ROYALS%7E1/LOCALS%7E1/Temp/msohtml1/01/clip_image012.jpg
[FONT=&quot]جواب في اويلر براي عدد [/FONT]p[FONT=&quot] كه عددي اول است: [/FONT]
· file:///C:/DOCUME%7E1/ROYALS%7E1/LOCALS%7E1/Temp/msohtml1/01/clip_image014.jpg
[FONT=&quot]جواب في اويلر براي حاصل ضرب دو عدد اول [/FONT]p[FONT=&quot]و[/FONT]q[FONT=&quot] :[/FONT]
· file:///C:/DOCUME%7E1/ROYALS%7E1/LOCALS%7E1/Temp/msohtml1/01/clip_image016.jpg
[FONT=&quot]قضيه ي اويلر:[/FONT][FONT=&quot]اگر [/FONT]a[FONT=&quot]و[/FONT]n[FONT=&quot] نسبت به هم اول باشند داريم: [/FONT]
[FONT=&quot]مثال هاي از [/FONT]RSA[FONT=&quot] :[/FONT]
Choose two primes p=47 and q=71.​
Then, n=pq= 3337.​
Choose e, relatively prime to z=46x70=3220​
how about 79.​
ed-1/z = (79)(1019) - 1 / 3220​
Private key (3337,79). Private key (3337,1019)​
Encrypt 688 -> 68879 mod 3337 = 1570.
Decrypt 1570 -> 15701019 mod 3337 = 688
p = 3​
q = 11​
n = p X q = 33 -- This is the modulus​
z = (p-1) X (q -1) = 20 -- This is the totient function f(n). There are 20 relative primes to 33. What are they? 1, 2, 4, 5, 7, 8, 10, 13, 14, 16, 17, 19, 20, 23, 25, 26, 28, 29, 31, 32​
d = 7 -- 7 and 20 have no common factors but 1​
7e = 1 mod 20​
e = 3​
C = Pe (mod n)​
P = Cd (mod n)
 

Aros.kabir

عضو جدید
[FONT=&quot]تحليل امنيت [/FONT]rsa[FONT=&quot] :[/FONT]
· [FONT=&quot]امتحان كردن تك تك كليد ها اگر طول كليد بين 1024 تا 2048 باشد غير[/FONT] [FONT=&quot]ممكن است.[/FONT]
· [FONT=&quot] بهترين انتخاب اين است كه سعي كنيم تا [/FONT]n[FONT=&quot] را به عواملش كه [/FONT]p[FONT=&quot]و[/FONT]q[FONT=&quot] باشند تجزيه كنيم وسپس [/FONT]d[FONT=&quot] را بدست بياوريم.[/FONT]
· [FONT=&quot] اين عمل تجزيه چقدر مشكل مي باشد؟كسي ميداند؟براي يك كليد 200 رقمي زمان اين تجزيه هزاران سال تخمين زده شده است.[/FONT]
· [FONT=&quot]اما هيچ كس اثبات نكرده است كه نمي شود در زمان معقولي اين عمل را انجام داد.[/FONT]
· [FONT=&quot] هر كسي كه بخواهد [/FONT]d[FONT=&quot] را بدست بياورد بايد ابتدا [/FONT]j(n)[FONT=&quot] را بدست آورد اما براي دانستن آن نيز نياز به دانستن [/FONT]p[FONT=&quot]و[/FONT]q[FONT=&quot] مي باشد.كه براي بدست آوردنشان بايد [/FONT]n[FONT=&quot] را تجزيه كرد.كه اين كار يك تابع يك طرفه است آيا به خاطر داريد؟ما ميدانيم ضرب اعداد اول بزرگ مي تواند يك تابع يك طرفه باشد. ما نياز به چيز ساده اي براي تفهيم اين واقعيت داريم.[/FONT]
[FONT=&quot]عيب هاي [/FONT]RSA[FONT=&quot] :‍[/FONT]
· [FONT=&quot]امروزه كليد هاي 512 بيتي ضعيف فرض مي شوند.كليد هاي 1024 بيتي تقريبا براي اكثر اهداف به اندازه ي كافي ايمن است.و كليد 2048 بيتي ميتواند تا براي دهه هاي آينده ايمن فرض شود.[/FONT]
· [FONT=&quot] چيزي كه بايد گفته شود اين است كه [/FONT]rsa[FONT=&quot] نسبت به حملات متن ساده ي انتخابي بسيار ضعيف عمل مي كند.اين روش نيز يكي از روش هاي جديد ووقت گير حمله است.كه مي تواند براي موارد مختلف [/FONT]rsa[FONT=&quot] استفاده شود.الگوريتم [/FONT]rsa[FONT=&quot] الگوريتمي مورد قبول و ايمن است اگر از آن به درستي استفاده شود.بايد به دقت از اين الگوريتم استفاده شود.[/FONT]
[FONT=&quot]اعداد اول بزرگ:[/FONT]
[FONT=&quot]پيدا كردن كليد بر اين اساس است كه ما بتوانيم دو عدد اول بزرگ را انتخاب كنيم.ما عدد اول خود را از مجموعه ي بي كراني از اعداد اول انتخاب مي كنيم.براي اثبات اين كه ما بي نهايت عدد اول داريم فرض ميكنيم كه تعداد محدودي عدد اول داريم.سپس تمام اين اعداد را در يك ليست مي نويسيم و در هم ضرب مي كنيم و يكي به آن اضافه مي كنيم. اين عدد بر هيچ كدام از اعداد واقع در ليست قابل قسمت نيست پس يا اول است يا بر عدد اولي بزرگ تر از اعداد درون ليست بخش پذير است. واين مهم نيست كه ليست ما چه اندازه باشد هميشه عدد ديگري يافت مي شود. كه اين خود ثابت مي كند بي نهايت عدد اول وجود دارد.پس ما عدد اول مان را از يك مجموعه ي بي كران انتخاب مي كنيم.[/FONT]
[FONT=&quot]اعداد اول در چه حد بزرگ باشند؟[/FONT]
[FONT=&quot]دو عدد اول [/FONT]p[FONT=&quot]و[/FONT]q[FONT=&quot] كه پيمانه را مي سازند بايد به طرز فجيعي بلند باشند.اين سبب مي شود كه پيمانه بسيار سخت تر از حالتي كه يكي از اعداد اول كوچك باشد تجزيه شود.به همين دليل اگر كسي از پيمانه 768 بيتي استفاده كرد اعداد اول هر كدام بايد طولي به طور تقريبي برابر 384 داشته باشند.اگر دو عدد اول خيلي نزديك هم باشند (در حد 100 تا 200 بيت اشكالي ايجاد نمي كند) يك ريسك امنيتي بالقوه ايجاد شده است.ولي احتمال اين كه اين دو عدد بسيار نزديك به هم باشند ناچيز است.[/FONT]
[FONT=&quot]امضاي دجيتالي با[/FONT]RSA[FONT=&quot] :[/FONT]
· [FONT=&quot]براي اين كه الگوريتم كار كند داريم: [/FONT]DKPvt(EKPub(P))=P[FONT=&quot][/FONT]
· [FONT=&quot] [/FONT]rsa [FONT=&quot] اين قابليت را نيز دارد : [/FONT]DKPub (EKPvt (P))=P[FONT=&quot][/FONT]
[FONT=&quot] وقتي كه متن را بتوان با [/FONT]KPvt[FONT=&quot] رمز كرده و سپس با [/FONT]Kpub[FONT=&quot] رمز گشايي كرد.اين به [/FONT]rsa[FONT=&quot] اين امكان را مي دهد كه از امضا ها براي تائيد استفاده كند.وقتي كه يك بلاك از داده با كليد خصوصي رمز شده باشد.هر كسي مي تواند با كليد عمومي آن را باز كند و گيرنده مي تواند اعتبار فرستنده را از طريق امضاي او شناسايي كند.[/FONT]
[FONT=&quot] [/FONT]
[FONT=&quot]موارد استفاده فعلي [/FONT]rsa[FONT=&quot] :[/FONT]
RSA [FONT=&quot] در حال حاضر در گستره ي گوناگوني از محصولات ، پلت فرم ها و صنايع در سراسر جهان مورد استفاده قرار مي گيريد.اين الگوريتم در نرم افزار هاي مختلف قالب ريزي شده و براي برنامه هاي زيادي نيز در دست ايجاد است.[/FONT]rsa[FONT=&quot] توسط سيستم هاي عامل رايجِ ساخته شده توسط ميكروسافت،اپل،سان. ناول مورد استفاده قرار گرفته شده است.در سخت افزار نيز [/FONT]rsa[FONT=&quot] در سيستم هاي ايمن تلفن ، بر روي كارت هاي اترنت شبكه و بر روي كارت هاي هوشمند بكار گرفته شده است.[/FONT]
[FONT=&quot]همچنين [/FONT]rsa[FONT=&quot] با تمام پروتكل هاي اصلي شبكه براي ايجاد ارتباط هاي اينترنتي ايمن تركيب شده است . به عنوان مثال [/FONT]S/MIME, SSL and S/WAN[FONT=&quot] همچنين از آن در داخل بسياري از سازمان هاي حقوقي نيز استفاده شده است مثلا در دولت ايالات متحده،شركت هاي بزرگ،آزمايشگاه هاي ملي و دانشگاه ها.حق امتياز [/FONT]RSA[FONT=&quot] را بيش از 350 شركت گرفته اند.همچنين تخمين زده مي شود كه ماشين هاي ايجاد شده بر مبناي [/FONT]RSA[FONT=&quot] در حدود350 ميليون است.واين نشان مي دهد كه [/FONT]RSA[FONT=&quot] به سرعت و متناسب با سرعت رشد اينترنت و وب گسترش ميابد.[/FONT]
Rsa [FONT=&quot]چقدر سريع است؟[/FONT]
[FONT=&quot]در مقام مقايسه ؛[/FONT]DES[FONT=&quot] وديگر الگوريتم هاي متقارن بسيار سريع تر از [/FONT]rsa[FONT=&quot] عمل مي كند.در نرم افزار [/FONT]DES[FONT=&quot] معمولا 100 برابر سريع تر از [/FONT]RSA[FONT=&quot] است.در سخت افزار نيز [/FONT]DES[FONT=&quot] 1000 تا 10000 برابر سريع تر است.البته بستگي به نحوي اجرا دارد.در عمل [/FONT]rsa[FONT=&quot] ممكن است تبديل به يك گلوگاه شود ولي [/FONT]DES[FONT=&quot] به خوبي و با سرعت عمل مي نمايد.[/FONT]
 

sasan hosseini

عضو جدید
رمزنگاری ؟؟؟؟؟؟؟؟؟؟؟؟

رمزنگاری ؟؟؟؟؟؟؟؟؟؟؟؟

شروع و توسعه رمزنگاری

اولین بار سزار امپراتور رم باستان برای آنکه بتواند بدوناطلاع دشمن با ا ارتشش در سراسر دنیا در ارتباط باشد نوعی رمز را بکار گرفت. اینرمز به این شکل بود که برای فرستادن یک پیام جای هر حرف را با سومین حرف بعد از آندر الفبا عوض می کردند، مثلا به جای 'A' حرف 'D' و به جای 'X' حرف 'A' را میگذاشتند.

بنابراین برای از کد خارج کردن پیام ها کافی بود دریافت کننده جایهر حرف را با سومین حرف بعد از آن در الفبا عوض کند. مثلا سعی کنید این پیغام سزاریرا از رمز خارج کنید:

hqhpb dssurdfklqj
wkluwb ghdg
uhwuhdw wr iruhvw

خوب، ممکن است بپرسید چهریاضیاتی در کار است. ریاضی وقتی وارد ماجرا می شود که به هر حرف یک عدد نسبت دهیم. در این صورتفرایند کد کردنمثل اضافه کردن عدد 3 به عدداولیه خواهد بود

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
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

مثلا برای به رمز درآوردن 'A' : داریم 0+3=3


نموداری که می بینید فراوانی حروف الفبا را در زبان انگلیسی نشان میدهد.




این اطلاعات ازشمارش حروف مختلف در حجم زیادی از نوشته ها مثل کتاب ها و روزنامه ها بدست آمدهاست. این نمودار مثلا نشان می دهد به طور میانگین 13.5 درصد از حروف بکار رفته درمتن های انگلیسی E هستند، که فراوان ترین حرف الفبا است. بنابراین وقتی رمزی از نوعبالا داریم احتمالا علامتی که بیش از همه تکرار می شود علامت متناظر E است وفراوانترین علامت بعد از آن متناظر 'T' است. سرنخ های دیگری هم وجود دارد مثلا تنهادو کلمه یک حرفی در انگلیسی وجود دارد: 'I' و 'A' و همچنین 'AND' و 'THE' کلماتخیلی معمولی هستند با کمک این سرنخ ها و کمیآزمایش و خطامیتوان اینگونه رمزها راشکست.همین روش باعث شد که ماری سرش را از دست بدهد
معرفی و اصطلاحات رمز نگاری از زاویه دیگر
رمرنگاری چیست :
رمزنگاری علم کدها و رمزهاست. یک هنر قدیمی است و برای قرنها بمنظور محافظت از پیغامهایی که بین فرماندهان، جاسوسان،‌ عشاق و دیگران ردوبدل می‌شده، استفاده شده است تا پیغامهای آنها محرمانه بماند.
رمزنگاری هنر نوشتن بصورت رمز است بطوریکه هیچکس بغیر از دریافت کننده موردنظر نتواند محتوای پیغام را بخواند.

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

برای محافظت از دیتای اصلی ( که بعنوان plaintext شناخته می‌شود)، آنرا با استفاده از یک کلید (رشته‌ای محدود از بیتها) بصورت رمز در می‌آوریم تا کسی که دیتای حاصله را می‌خواند قادر به درک آن نباشد. دیتای رمزشده (که بعنوان ciphertext شناخته می‌شود) بصورت یک سری بی‌معنی از بیتها بدون داشتن رابطه مشخصی با دیتای اصلی بنظر می‌رسد. برای حصول متن اولیه دریافت‌کننده آنرا رمزگشایی می‌کند. یک شخص ثالت (مثلا یک هکر) می‌تواند برای اینکه بدون دانستن کلید به دیتای اصلی دست یابد، کشف رمز‌نوشته(cryptanalysis) کند. بخاطرداشتن وجود این شخص ثالث بسیار مهم است.

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


الگوریتم‌ها
طراحی الگوریتمهای رمزنگاری مقوله‌ای برای متخصصان ریاضی است. طراحان سیستمهایی که در آنها از رمزنگاری استفاده می‌شود، باید از نقاط قوت و ضعف الگوریتمهای موجود مطلع باشند و برای تعیین الگوریتم مناسب قدرت تصمیم‌گیری داشته باشند. اگرچه رمزنگاری از اولین کارهای شانون (Shannon) در اواخر دهه ۴۰ و اوایل دهه ۵۰ بشدت پیشرفت کرده است، اما کشف رمز نیز پابه‌پای رمزنگاری به پیش آمده است و الگوریتمهای کمی هنوز با گذشت زمان ارزش خود را حفظ کرده‌اند. بنابراین تعداد الگوریتمهای استفاده شده در سیستمهای کامپیوتری عملی و در سیستمهای برپایه کارت هوشمند بسیار کم است.

اکثر سيستم های رمزنگاری اطلاعات در کامپيوتر به دو گروه عمده زير تقسيم می گردند :
§ رمزنگاری کليد - متقارن
§ رمزنگاری کليد - عمومی

رمز نگاری کليد - متقارن
در روش فوق ، هر کامپيوتر دارای يک کليد رمز ( کد ) بوده که از آن برای رمزنگاری يک بسته اطلاعاتی قبل از ارسال اطلاعات بر روی شبکه و يا کامپيوتر ديگر ، استفاده می نمايد. دراين روش لازم است در ابتدا مشخص گردد که کداميک از کامپيوترها قصد مبادله اطلاعاتی با يکديگر را دارند ، پس از مشخص شدن هر يک از کامپيوترها، در ادامه کليد رمز بر روی هر يک از سيستم ها می بايست نصب گردد. اطلاعات ارسالی توسط کامپيوترهای فرستنده با استفاده از کليد رمز ، رمز نگاری شده وسپس اطلاعات رمز شده ارسال خواهند شد. پس از دريافت اطلاعات رمز شده توسط کامپيوترهای گيرنده ، با استفاده از کليد رمز اقدام به بازگشائی رمز و برگرداندن اطلاعات بصورت اوليه و قابل استفاده خواهد شد . مثلا" فرض کنيد پيامی را برای يکی از دوستان خود رمز و سپس ارسال می نمائيد . شما برای رمز نگاری اطلاعات از روشی استفاده نموده ايد که بر اساس آن هر يک از حروف موجود در متن پيام را به دو حرف بعد از خود تبديل کرده ايد. مثلا" حروف A موجود در متن پيام به حروف C و حروف B به حروف D تبديل می گردند. پس از ارسال پيام رمز شده برای دوست خود ، می بايست با استفاده از يک روش ايمن و مطمئن کليد رمز را نيز برای وی مشخص کرد. در صورتيکه گيرنده پيام دارای کليد رمز مناسب نباشد ، قادر به رمز گشائی و استفاده از اطلاعات نخواهد بود. در چنين حالتی می بايست به دوست خود متذکر گرديد که کليد رمز ، " شيفت دادن هر حرف بسمت جلو و به اندازه دو واحد است " . گيرنده پيام با انجام عمليات معکوس قادر به شکستن رمز و استفاده از اطلاعات خواهد بود.
رمزنگاری کليد - عمومی
در روش فوق از ترکيب يک کليد خصوصی و يک کليد عمومی استفاده می شود. کليد خصوصی صرفا" متعلق به کامپيوتر فرستنده بوده و کليد عمومی توسط کامپيوتر فرستنده در اختيار هر يک از کامپيوترهائی که قصد برقراری ارتباط با يکديگر را دارند ، گذاشته می شود. برای رمزگشائی يک پيام رمز شده ، کامپيوتر می بايست از کليد عمومی که توسط فرستنده ارائه شده، بهمراه کليد خصوصی خود استفاده نمايد. يکی از متداولترين برنامه های رمزنگاری در اين رابطه PGP است . با استفاده از PGP می توان هر چيز دلخواه را رمز نمود.
بمنظور پياده سازی رمزنگاری کليد - عمومی در مقياس بالا نظير يک سرويس دهنده وب ، لازم است از رويکردهای ديگری در اين خصوص استفاده گردد. " امضای ديجيتال " يکی از رويکردهای موجود در اين زمينه است يک امضای ديجيتالی صرفا" شامل اطلاعات محدودی بوده که اعلام می نمايد ، سرويس دهنده وب با استفاده و بکارگيری يک سرويس مستقل با نام " امضای مجاز " ، امين اطلاعات است . "امضای مجاز " بعنوان يک ميانجی بين دو کامپيوتر ايفای وظايف می نمايد. هويت و مجاز بودن هر يک از کامپيوترها برای برقراری ارتباط توسط سرويس دهنده انجام و برای هر يک کليد عمومی مربوطه را فراهم خواهد کرد.
يکی از متداولترين نمونه های پياده سازی شده از رمزنگاری کليد- عمومی ، روش SSLاست .
روش فوق در ابتدا توسط "نت اسکيپ " پياده سازی گرديد. SSL يک پروتکل امنيتی اينترنت بوده که توسط مرورگرها و سرويس دهندگان وب بمنظور ارسال اطلاعات حساس ، استفاده می گردد.SSL اخيرا" بعنوان بخشی از پروتکل TLS در نظر گرفته شده است .
در مرورگر می توان زمان استفاده از يک پروتکل ايمن نظيز TLS را با استفاده از روش های متعدد اعلام کرد. استفاده از پروتکل "https" درعوض پروتکل "http" يکی از روش های موجود است . در چنين مواردی در بخش وضعيت پنجره مرورگر يک "Padlock" نشان داده خواهد شد.
رمزنگاری کليد - عمومی ، مدت زمان زيادی را صرف انجام محاسبات می نمايد. بنابراين در اکثر سيستمها از ترکيب کليد عمومی و متقارن استفاده می گردد.
مجددا" فرآيند فوق تکرار گردد ( ايجاد يک کليد متقارن ، ....)
 

Similar threads

بالا