آخرين ارسالهاي تالار

خطا: mod_kunenalatest:كيوننا نسخه 1.7 (يا بالاتر) بر روي سيستم شما نصب نيست!
پیغام
  • Kunena is not installed or the installed Kunena version is not supported. The plug-in has now been disabled. Please install/upgrade Kunena to version 1.7 for the Kunena Discuss Plug-in to function properly.
رمزنگاري كليد عمومي وrsa مشاهده در قالب PDF چاپ فرستادن به ایمیل
نوشته شده توسط admin   
چهارشنبه, 24 اسفند 1390 ساعت 16:54

مروري كوتاه:

رمزنگاري كليد مخفي: رمزنگاري سنتي كليد مخفي؛ از يك كليد تنها كه بين هر دو طرف گيرنده و  فرستنده به اشتراك گذاشته شده است استفاده مي كند.اگر اين كليد فاش شود ارتباط به خطر مي افتد.همچنين اين روش از گيرنده در برابر پيام هاي جعلي ارسال شده كه ادامي كنند از طرف فرستنده ي خاصي مي ايند محافظت نمي كند.

رمزنگاري كليد عمومي: اين روش كه رمزنگاري دوكليده نيز خوانده مي شود از دو كليد براي عمل رمز نگاري استفاده مي كند:

يكي كليد عمومي كه توسط همه شناخته شده است.و براي به رمز درآوردن پيغام ها و تشخيص امضا ها مورد استفاده قرار مي گيرد.

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

 

اشكال سيستمهاي كليد مخفي:

يك از اشكال هاي الگوريتم هاي بر پايه كليد متقارن اين است كه شما نياز به يك روش مطمئن براي انتقال كليد هاي طرفين داريد.به اين مفهوم كه يا از يك كانال امن اين كار را انجام دهند يا به منظور انتقال كليد همديگر را ملاقات كنند.اين ميتواند يك مشكل بزرگ باشد

و قطعا كارآساني نيست.اشكال ديگر اين روش اين است كه شما براي ارتباط با هر شخصي كليدي جداگانه نياز داريد.

 

 

 

سناريوي ارتباط:

آليس وباب مي خواهند با هم مكالمه مطمئني داشته باشند طوري كه كس ديگري از اطلاعات مبادله شده در اين مكالمه با خبر نشود.درهمين زمان Eve در حال استراق سمع است.

آليس و باب ميتوانند خلبان دو جت نظامي يا دو تاجر اينترتي يا فقط دو دوست باشند كه مي خواهند با هم يك مكالمه ي خصوصي داشته باشند.آنها نمي توانند Eve را از گوش دادن به سيگنال راديوي يا اطلاعات مبادله شده از طريق تلفن و .. باز دارند.پس چه كاري مي توانند انجام دهند تا اين ارتباط مخفي بماند؟

رمزنگاري كليد خصوصي:

يك راه حل اين است كه آليس و باب يك كليد دجيتالي را مبادله كنند.بعد وقتي هر دو از آن كليد آگاه شدند(ولي ديگران از آن بيخبرند).آليس از اين كليد استفاده مي كند تا پيغام ها را به رمز كرده و به باب بفرستد.باب نيز پيغام اوليه را با استفاده از اين كليد و رمزگشايي پيغام بازسازي مي كند.پيغام رمز شده براي Eve قابل استفاده نيست .او كليد را نميداند پس نمي تواند پيغام اصلي را باز يابي كند.با يك الگوريتم رمزنگاري خوب اين طرح قابل اجراست. ولي مبادله كليد به طوري كه اين كليد از Eve مخفي  بماند يك معضل است.اين كار واقعا نياز به يك ارتباط رودرو دارد كه هميشه امكان پذير نيست.

رمز نگاري كليد عمومي: اين رمزنگاري به صورت متفاوتي عمل مي كند.زيرا كليد را به دو قسمت كليد عمومي براي به رمز در آوردن و كليد خصوصي براي رمزگشايي تقسيم مي كند.اين ممكن نيست كه كليد خصوصي از كليد عمومي قابل تعيين باشد.همان طور كه در شكل مي بينيد؛باب يك جفت كليد توليد مي كند.يكي از كليدها كليد عمومي است كه بايد به اطلاع عموم (از جمله Eve) برسد. و ديگري كليد خصوصي كه فقط خود باب از آن اطلاع دارد.هر كسي مي تواند از كليد عمومي باب براي ارسال پيغام به او استفاده كنند.ولي فقط باب مي تواند.از كليد خصوصي خودش براي رمز گشايي پيغام ها استقاده كند.اين طرح به آليس و باب اجازه مي دهد تا يك ارتباط امن را بدون ملاقات كردن هم داشته باشند.

هر چند اگر Eve بتواند به همان راحتي كه مي تواند به پيغام هاي مبادله شده بين باب و آليس گوش مي دهد آنها را دست كاري نيز كند؛ مي تواند كليد عمومي خود را جانشين كليد عمومي باب كند و سپس آليس از كليد عمومي او براي رمز كردن پيغام ها و فرستادن آنها استفاده مي كند.

Man in middle attack : (حمله ي پل زدن به سطل)

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

پرهيز ازحمله ي پل زدن به سطل:

روش معمول براي جلوگيري از حمله ي پل زدن به سطل اين است كه؛ از يك الگوريتم رمز گذاري كليد عمومي استفاده كنيم كه قابليت امضاي ديجيتالي را داشته باشد.براي برپايي چنين سيستمي طرفين بايد كليد عمومي ديگري را از قبل بداند(كه اين از مزيت اصلي رمز گذاري كليد عمومي مي كاهد. ) پس از توليد كليد خصوصي توليد شده طرفين امضاي ديجيتالي خود را براي هم مي فرستند.مهاجم كه خود را در وسط قرار داده ممكن است بتواند تا اين جاي ارتباط را گوش دهد ولي ديگر قادر نخواهد بود كه امضاي ديجيتالي را جعل كند. زيرا امضا ي ديجيتالي قابل جعل نيست.

منتشر كردن كليد عمومي:

فهرست  كليد هاي عمومي براي اين ايجاد شد تا مشكل اين كه هر كاربر مي بايست يك كپي از كليد عمومي تمام اشخاص را داشته باشد تا با آنها ارتباط امن بر قرار كند را بر طرف كند.هر كاربري كليد عمومي خود را در فهرست ثبت ميكند و وقتي مثلا A خواست تا به B  يك پيغام رمز شده بفرستد او كليد عمومي B را از طريق فرستادن درخواست KUB به فهرست انجام مي دهد.

مشكلات كليد ها:

· ما ممكن است كليد خود را گم كنيم.

· ما ممكن است فراموش كنيم كدام كليد براي چه كاري بود،

·  ما ممكن است يك كليد را به شخص اشتباهي بدهيم.

· يك كسي ممكن است كليد ما را بدزدد.

· يك كسي ممكن است از طريق پنجره وارد شود.

·  كسي ممكن است در را بشكند.

·  كسي ممكن است درخواست ورود به خانه را بكند و يك احمق هم به او اين اجازه را بدهد.

·  كسي ممكن است بتواند موفق به دريافت گواهيي شود كه  به او اجازه انجام كار هايي فرا تر از آنجه لازم است را بدهد.

·  كسي ممكن است خانه را به آتش بكشاند و اغتشاش ايجاد كند.

 

الگوريتم هاي كليد عمومي:

الگوريتم هاي كليد عمومي از يك جفت كليد عمومي و خصوصي بر روي يك پيغام استفاده مي كنند.

· فقط كليد خصوصي مي تواند پيغام رمز شده با كليد كليد عمومي را رمزگشايي كند.

· همچنين فقط كليد عمومي قادر خواهد بود پيغام رمز شده با كليد خصوصي را رمز گشايي كند.

· اگر شما باكليد عمومي من پيغامي را رمز كنيد. فقط من قادر به خواندن آن پيغام خواهم بود.

· اگر شما بتوانيد پيغامي را با كليد عمومي من باز كنيد آن پيغام الزاما از طرف من آمده است.

·  اين طرح اولين بار توسط وايتفيلد ديفه و مارتين هلمن و به صورت مستقلانه اي در همين زمان يعني دهه ي 70 توسط رالف مركل پيشنهاد گرديد.

·  سازمان NSA  (سازماني سري در امريكا كه روي مباحث رمزنگاري فعاليت مي كند.)قبل از پيشنهاد هاي اين افراد به اين نتايج رسيده بود.

· معمولا الگوريتم هاي كليد عمومي بسيار كند تر از الگوريتم هاي كليد متقارن هستند.

· يك خصيصه ي قطعي كليد عمومي اين است كه كليد خصوصي از كليد عمومي قابل تعيين نباشد.و در مقابل حملات ”متن سادهِ انتخاب شده” مقاوم باشد.

· در واقع تركيبي از سيستمهاي رمزگذاري كليد عمومي و متقارن كاربرد دارند.

· RSA نوعي از الگوريتم رمز گذار بر پايه ي كليد عمومي است كه در گستره وسيعي از كاربردها به كار مي رود.پس اجازه دهيد در درباره RSA بحث كنيم و بعد دوباره به بحث كلي درباره كليد عمومي برگرديم.

ملزومات: تعيين كليد رمزگشايي از كليد رمزگذاري بايد غير ممكن باشد.

انتخابي: هر كدام از دو كليد عمومي و خصوصي را بايد بتوان براي رمز گذاري و رمز گشايي به كار برد.

توابع درب تله اي يا يك طرفه:

· سيستم هاي رمز گذاري كليد عمومي بر پايه ي يك سري حيله هاي زيركانه ي رياضي كه با قدرت كامپيوتر در ارتباطند گسترش يافته اند.

· رمزگذاري كليد عمومي بر پايه ي مسئله كه در رياضي با نام ”درب تله اي” شناخته مي شود كار مي كند.

· يك درب تله اي يك فرمول رياضي است كه به آساني جلو مي رود ولي برگشت آن تقريبا غير ممكن است.

· به عنوان مثال عمل ضرب كردن دو عدد بزرگ كار راحتي است ولي بدست آوردن فاكتور هاي اوليه ي آن عدد بزرگ بسيار مشكل است.

· الگوريتم كليد عمومي بر اين اساس كار مي كند كه شخصي يك كليد عمومي بزرگ را انتشار مي دهد و ديگران قادر نيستند كه فاكتور هاي اوليه ي اين كليد را بدست آورند.

· سازنده ي كليد فاكتور هاي اوليه ي كليد خود را ميداند و با استفاده از اين فاكتور ها پيغام هاي ديگران را كه با استفاده از كليد عمومي خودش رمز شده اند رمز گشايي مي نمايد.

· ديگران كه فقط از كليد عمومي آگاهي دارند قادر به شناسايي كليد خصوصي نيستند.و دليل آن هم سختي تجزيه كردن عداد بزرگ مي باشد.

RSA

· تا كنون بهترين سيستم كليد عمومي شناخته شده RSA نام دارد.اسم اين سيستم رمز گذاري بر گرفته شده از نام مولف هايش است.رونالد ال رايوست و ايديا شامير و لِونارد ام ادِلمًن

·  RSA توسط سه بنيان گذارش يعني رايوست و شايرمن و لونارد ام ادلمن به عنوان يك الگوريتم رمز گذاري كليد عمومي تجاري معرفي شد.امروزه اين الگوريتم توسط مرورگر هاي وب و برنامه هاي كلاينت E-Mail ،تلفن هاي همراه و شبكه هاي محلي مجازي(vpn)، برنامه هاي دسترسي ايمن (secure shell) و در خيلي از جاهاي ديگر كاربرد دارد.اين درست است كه امنيت ي كه  اين الگوريتم ايجاد مي كند جاي بحث دارد ولي با انتخاب كليد به اندازه ي كافي بزرگ مي توان جلوي اغلب حمله ها را گرفت.تا همين چند وقت پيش RSA با قوانين صادرات و حق امتياز ها محدود شده بود ولي اكنون حق امتيازات منقضي شدند و قوانين صادرات ايالات متحده نيز شل شده اند.

·  اين الگوريتم بر پايه يك قانون درب تله اي كه از سختي فاكتور گرفتن از اعداد بزرگ استفاده مي كند؛ قرار گرفته است.

تقابل PK وSK :

· در رمزنگاري هاي كليد مخفي كليد رمز گذاري و كليد رمز گشايي يك كليد است.بطور كلي دو تابع وجود دارد يكي تابع رمزگذاري و ديگري معكوس آن تابع رمز گشايي.

·  در مقابل كليد مخفي ؛الگوريتم كليد عمومي قرار دارد.در چنين سيستمي دو كليد وجود دارد يكي كليد عمومي و ديگري كليد خصوصي.

اعداد اول چه هستند؟

· يك عدد اول؛ عددي است كه تنها بر خودش و يك قابل تقسيم باشد.

·  به عنوان مثال 10 عدد اول نيست زيرا بر اعداد 1و2و5 و10 بخش پذير است.ولي 11 يك عدد اول است زيرا تنها به خودش و 1 بخش پذير است.

· اعدادي كه يك عدد بر آنها بخش پذير است فاكتور هاي آن عدد خوانده مي شود.فرايند پيدا كردن فاكتورها فاكتور گرفتن يا تجزيه نام دارد.

· براي مثال تجزيه ي عدد 15 مي گوييم اين عدد از 3*5 بدست مي آيد ولي در مورد 6320491217 چطور؟

·  حال در مورد يك عدد 155 رقمي چطور؟يا 200 رقمي يا بيشتر؟به طور خلاصه تجزيه كردن اعداد قطعا از تعدادي مرحله تشكيل شده كه تعداد اين مراحل بابزرگ شدن عدد به صورت نمايي بالا مي رود.اگر يك عدد به مقدار كافي بزرگ باشد؛ زمان مورد نياز براي اجراي تمام مراحل تجزيه كردن ممكن است به قدري زياد باشد كه سالها به طول بيانجامد.

حساب پيمانه اي:

در رياضيات پيمانه اي تنها اعداد صحيح غير منفي كوچكتر از پيمانه مورد بررسي قرار مي گيرد.پس براي پيمانه ي n (mod N) تنها اعداد صحيح كه از 0 تا (N-1) قابل حساب هستند و نتايج محاسبات تنها از 0 تا (N-1) قابل قبول است.فكر كنيد زمان نظامي بر عددي بر پيمانه ي 2400 است.براي مثال 2200 بعلاوه 400 (10:00 PM plus 4 hours)جواب 2600 نمي شود.شما از صفر شروع مي كنيد.بنابراين 2200+400 mod 2400 را بايد محاسبه كنيم كه مي شود:2600-2400=0200 و يا 2:00 صبح. همچنين اگر از 0  يا نصف شب شروع كنيم.شش برابر 500 (بخوانيد شش بار 5 ساعت به جلو)3000 نميشود.جواب 0600 يا 6:00 بعد از ظهر مي شود.اين حساب دقيقا مثل ساعت عمل ميكند.

A mod b=r به اين معني كه a بر b تقسيم شده است و باقي مانده r است.

براي مثال :

”mod همان باقيمانده تقسيم است.“

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

· اعداد اول وقتي در رياضيات پيمانه اي بكار گرفته مي شوند ؛ داراي خواص سودمندي مختلفي  هستند.

·  الگوريتم RSA از اين خواص استفاده مي كند.

 

تحليل امنيت rsa :

· امتحان كردن تك تك كليد ها اگر طول كليد بين 1024 تا 2048 باشد غير ممكن است.

·  بهترين انتخاب اين است كه سعي كنيم تا n را به عواملش كه pوq باشند تجزيه كنيم وسپس d را بدست بياوريم.

·  اين عمل تجزيه چقدر مشكل مي باشد؟كسي ميداند؟براي يك كليد 200 رقمي زمان اين تجزيه هزاران سال تخمين زده شده است.

· اما هيچ كس اثبات نكرده است كه نمي شود در زمان معقولي اين عمل را انجام داد.

·  هر كسي كه بخواهد d را بدست بياورد بايد ابتدا j(n) را بدست آورد اما براي دانستن آن نيز نياز به دانستن pوq مي باشد.كه براي بدست آوردنشان بايد n را تجزيه كرد.كه اين كار يك تابع يك طرفه است آيا به خاطر داريد؟ما ميدانيم ضرب اعداد اول بزرگ مي تواند يك تابع يك طرفه باشد. ما نياز به چيز ساده اي براي تفهيم اين واقعيت داريم.

عيب هاي RSA :‍

· امروزه كليد هاي 512 بيتي ضعيف فرض مي شوند.كليد هاي 1024 بيتي تقريبا براي اكثر اهداف به اندازه ي كافي ايمن است.و كليد 2048 بيتي ميتواند تا براي دهه هاي آينده ايمن فرض شود.

·  چيزي كه بايد گفته شود اين است كه rsa نسبت به حملات متن ساده ي انتخابي بسيار ضعيف عمل مي كند.اين روش نيز يكي از روش هاي جديد ووقت گير حمله است.كه مي تواند براي موارد مختلف rsa استفاده شود.الگوريتم rsa الگوريتمي مورد قبول و ايمن است اگر از آن به درستي استفاده شود.بايد به دقت از اين الگوريتم استفاده شود.

اعداد اول بزرگ:

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

اعداد اول در چه حد بزرگ باشند؟

دو عدد اول pوq كه پيمانه را مي سازند بايد به طرز فجيعي بلند باشند.اين سبب مي شود كه پيمانه بسيار سخت تر از حالتي كه يكي از اعداد اول كوچك باشد تجزيه شود.به همين دليل اگر كسي از پيمانه 768 بيتي استفاده كرد اعداد اول هر كدام بايد طولي به طور تقريبي برابر 384 داشته باشند.اگر دو عدد اول خيلي نزديك هم باشند (در حد 100 تا 200 بيت اشكالي ايجاد نمي كند) يك ريسك امنيتي بالقوه ايجاد شده است.ولي احتمال اين كه اين دو عدد بسيار نزديك به هم باشند ناچيز است.

امضاي دجيتالي باRSA :

· براي اين كه الگوريتم كار كند داريم: DKPvt(EKPub(P))=P

·  rsa  اين قابليت را نيز دارد : DKPub (EKPvt (P))=P

وقتي كه متن را بتوان با KPvt رمز كرده و سپس با Kpub رمز گشايي كرد.اين به rsa اين امكان را مي دهد كه از امضا ها براي تائيد استفاده كند.وقتي كه يك بلاك از داده با كليد خصوصي رمز شده باشد.هر كسي مي تواند با كليد عمومي آن را باز كند و گيرنده مي تواند اعتبار فرستنده را از طريق امضاي او شناسايي كند.

موارد استفاده فعلي rsa :

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

همچنين rsa با تمام پروتكل هاي اصلي شبكه براي ايجاد ارتباط هاي اينترنتي ايمن تركيب شده است . به عنوان مثال S/MIME, SSL and S/WAN همچنين از آن در داخل بسياري از سازمان هاي حقوقي نيز استفاده شده است مثلا در دولت ايالات متحده،شركت هاي بزرگ،آزمايشگاه هاي ملي و دانشگاه ها.حق امتياز RSA را بيش از 350 شركت گرفته اند.همچنين تخمين زده مي شود كه ماشين هاي ايجاد شده بر مبناي RSA در حدود350 ميليون است.واين نشان مي دهد كه RSA به سرعت و متناسب با سرعت رشد اينترنت و وب گسترش ميابد.

Rsa چقدر سريع است؟

در مقام مقايسه ؛DES وديگر الگوريتم هاي متقارن بسيار سريع تر از rsa عمل مي كند.در نرم افزار DES معمولا 100 برابر سريع تر از RSA است.در سخت افزار نيز  DES 1000 تا 10000 برابر سريع تر است.البته بستگي به نحوي اجرا دارد.در عمل rsa ممكن است تبديل به يك گلوگاه شود ولي DES به خوبي و با سرعت عمل مي نمايد.

نظر ها (3)
  • ناشناس
    :twisted: :twisted:
  • almasi
    سلام حمله ذکر شده در بالا حمله مرد میانی است که به اشتباهحمله پل زدن به متن ترجمه شده.ممنون از معرفی خوب کد rsa
  • saadaf1366
    سلام خسته نباشید ببخشید می خواستم بدونم اون وقت برای نمودارهای مربوط به رمزنگاری مثلا مقایسه سرعتشون از کدوم قسمت متلب باید استفاده کنم.
تنها کاربران عضو شده می توانند نظر ارسال کنند!
 
logo-samandehi