تبليغاتX
ریاضی کاربردی - مروری بر رمزنگاری RSA ریاضی کاربردی      ریاضیات کاربردی و علوم کامپیوتر

                 

 

 

صفحه نخست
پست الکترونيک
آرشيو وبلاگ

 

درباره وبلاگ

آيا کساني که مي دانند با کساني که نمي دانند يکسانند. قرآن کريم
ریاضی کابردی شاخه ای از ریاضیات نیست بلکه جهت حرکت در آن است.
نویسندگان :
شهریار میرزاده روزبه ابرازی
دانشجویان ریاضی کاربردی
دانشگاه خواجه نصیر الدین طوسی
E-Mail:R.Ebrazi@gmail.com

 

نویسندگان وبلاگ

روزبه ابرازی
شهریار میرزاده


 آرشيو موضوعي

  عمومی
تئوری بازی ها
تئوری اعداد
سیستم های خبره
بهینه سازی
ریاضیدانان
توپولوژی
رمزنگاری

 

نوشته هاي پيشين

شهریور 1386
اردیبهشت 1386
فروردین 1386
اسفند 1385
بهمن 1385
مهر 1385
شهریور 1385
مرداد 1385
تیر 1385
اردیبهشت 1385
فروردین 1385
اسفند 1384
بهمن 1384
دی 1384
آذر 1384
مهر 1384
شهریور 1384
مرداد 1384

 

جستجو و آمار

Google

در اين سايت

در كل اينترنت
 



 

 

7:47شنبه دوازدهم اسفند 1385

مروری بر رمزنگاری RSA

روزبه ابرازی

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

در مطالب گذشته مفهوم رمزنگاری یکطرفه با همان سیستم کلید عمومی توضیح داده شد یک از معروفترین مدل های این روش، RSA است حروف RSA ابتدای نام سه پدید آورنده آن است:

 Ronald Rivest, Adi Shamir ,Leonard Adleman.

 

از چپ به راست Leonard Adleman، Ronald Rivest، Adi Shamir کار های اولیه بر روی RSA به زمان دانشجوی آنها در MIT بر میگردد.

این روش بر پایه ایده ای به ظاهر ساده ولی زیرکانه است که در زیر مطرح می شود:

ضرب اعداد خیلی ساده است بویژه با استفاده از رایانه ،  ولی تجزیه اعداد بسیار مشکل است. مثلا اگر بخواهیم بدانیم که حاصلضرب 34537 در 99991 چقدر می شود براحتی با وارد کردن این اعداد در ماشین حساب به عدد 3453389167 میرسیم اما عکس این عمل بسیار سخت تر است.

اگر  عدد 14459160519 را به شما داده باشند و گفته باشند که این عدد با ضرب دو عدد صحیح به دست آمده است.آیا می توانید این دو عدد را تعیین کنید.این سوال نسبتا سخت است انصافاٌ رایانه این عدد را به سرعت تجزیه میکند (البته در این کار از لم های خاصی استفاده می شود ) ، اساسا این کار با امتحان کردن تعداد زیادی ترکیب احتمالی صورت می گیرد.رایانه برای اینکه هر عدد ، با هر اندازه ای ، را تجزیه کند مجبور است تقریبا در حدود «ریشه دوم آن عدد» ترکیب احتمالی را امتحان کند.مثلا در این مورد خاص تقریبا 38000 مورد بررسی می شود.

البته بررسی 38000 احتمال برای رایانه زیاد وقت گیر نیست ولی ، اگر عدد داده شده 10 رقمی نباشد و مثلا 400 رقمی باشد چه اتفاقی می افتد؟! ریشه دوم عددی  400 رقمی تقریبا 200 رقم دارد . عمر جهان تقریبا 1018 ثانیه است یعنی یک عدد 18 رقمی . حالا فرض کنید یک رایانه بتواند هر یک میلیون ترکیب احتمالی را در یک ثانیه چک کند ، در طول عمر جهان این رایانه قادر به چک کردن 1024 مورد است اما برای عدد 400 رقمی 10200 احتمال وجود دارد . به این معنی رایانه برای تجزیه این عدد 10178 برابر عمر جهان مشغول به محاسبه خواهد بود.
اما چک کردن اینکه یک عدد اول است یا نه به این اندازه دشوار نیست – به عبارت دیگر امتحان کنیم که ، آیا یک عدد می تواند قابل تجزیه شدن نباشد!

RSA هم به همین ترتیب عمل می کند . ابتدا دو عدد اول بسیار بزرگ ، p و q،پیدا می کنیم بطوری که هر کدام 100 یا 200 رقم داشته باشد. این اعداد محرمانه هستند ( در واقع همان کلید خصوصی ما هستند ) ، سپس این اعداد را در هم ضرب می کنیم تا عدد N=p.q ساخته شود .اساسا عدد N ی که به این ترتیب ساخته می شود کلید عمومی ما تلقی می شود. رسیدن به عدد N نسبتا کار ساده ای برای ما خواهد بود ، اما اگر شخصی بخواهد عدد N را تجزیه کند کار بسیار مشکل و تقریبا غیر ممکنی برایش خواهد بود.

اما چگونه می توان یک پیغام را بوسیله N برمز در آورد ؟ و چطور می توانیم مطلب برمز در آورده شده را با p و q رمزگشایی کرد؟

ادامه دارد...

کلید واژه ها :رمزنگاری آر اس ای  RSA Encryption