تارا فایل

تحقیق درباره رمزنگاری کلید عمومی و rsa


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

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

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

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

اشکال سیستمهای کلید مخفی:
یک از اشکال های الگوریتم های بر پایه کلید متقارن این است که شما نیاز به یک روش مطمئن برای انتقال کلید های طرفین دارید.به این مفهوم که یا از یک کانال امن این کار را انجام دهند یا به منظور انتقال کلید همدیگر را ملاقات کنند.این میتواند یک مشکل بزرگ باشد

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

سناریوی ارتباط:
آلیس وباب می خواهند با هم مکالمه مطمئنی داشته باشند طوری که کس دیگری از اطلاعات مبادله شده در این مکالمه با خبر نشود.درهمین زمان 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 از این خواص استفاده می کند.

اعداد نسبت به هم اول:

* دو عدد نسبت به هم اولند اگر تنها فاکتور مشترک آنها یک باشد.
* مثلا 10 و 21 نسبت به هم اولند.در حالی که هیچکدام عدد اول نیستند.ولی نسبت به هم اولند زیرا عامل مشترکی ندارند عوامل 10: 1, 2, 5 and 10 و عوال مشترک 21 : 1, 3, 7 and 21.

* تنها عاملی که در هر دو لیست دیده می شود 1 است.


تعداد صفحات : 21 | فرمت فایل : WORD

بلافاصله بعد از پرداخت لینک دانلود فعال می شود