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

در مطالب گذشته مفهوم رمزنگاری یکطرفه با همان سیستم کلید عمومی توضیح داده شد یک از معروفترین مدل های این روش، 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