الگوریتم RSA قسمت - ۲
با توجه به روشی که در مطلب قبل ارائه کردیم در اینجا بعنوان نمونه مثالی از نحوه تعریف کلید های عمومی و خصوصی خواهیم آورد. اما برای سادگی محاسبات از اختیار کردن اعداد بزرگ دوری خواهیم کرد و توجه شما را به این نکته جلب می کنیم که هرچقدر اعداد اولیه بزرگتر باشند احتمال شکستن رمز در مدت زمان محدود ناچیزتر می شود.

1- ابتدا باید دو عدد اول بزرگ انتخاب کنیم که در اینجا از اعداد ساده و هم اندازه ای مانند 11 و 3 استفاده می کنیم. پس p=11 , q=3

2- حاصلضرب p در q که همان n است را به اینصورت خواهیم داشت : n = 11 x 3 = 33

3- حاصلضرب p-1 در q-1 که همان m است را به اینصورت خواهیم داشت : m = 10 x 2 = 20

4- برای انتخاب عدد e که نسبت به m=20 اول باشد و کمتر از آن هم باشد ساده ترین گزینه یعنی عدد 3 را انتخاب می کنیم.

5- برای یافتن عدد d که در رابطه d x e) mod m = 1) صادق باشد اعداد 1,2,3,4,5 و ... را امتحان می کنیم، بنظر می رسد که عدد 7 برای اینکار مناسب باشد چرا که 7x3=21 باقیمانده ای معادل 1 بر m=20 دارد.

حال می توانیم از زوج (33,3) بعنوان کلید عمومی و از زوج (33,7) بعنوان کلید خصوصی استفاده کنیم. حال اگر از فرمول هایی که در مطلب قبل برای کد کردن و آشکار سازی استفاده کنیم برای اعداد 1 تا 1632 به جدول زیر خواهیم رسید.

m :012345678910 111213141516 c :018273126181317310 111219594
m :1718192021222324252627 2829303132 c : 29242814212223301620 157262532

بنابراین هم اکنون شما یک جدول تبدیل کد دارید که با کمک کلید عمومی اعداد صفر تا 32 را به اعدادی کد شده و در همین رنج تبدیل کرده اید. اما اگر دقت کنید تعدادی از اعداد دقیقا" به همان عدد خود تبدیل شده اند که به اینها unconcealed یا مخفی نشده گفته می شود. اولآ باید بدانیم که 0 و 1 همواره به همین اعداد تبدیل می شوند و مطلب دیگر اینکه اگر رنج دو عدد اول ابتدایی را بزرگ در نظر بگیریم دیگر مشکلی پیش نخواهد آمد.

حال کافی است فرض کنیم A=2 ، B=3 ، C=4 و ... Z=27 و جملات مربوطه را کد نماییم. دقت کنید که معمولا" از 0 و 1 برای کدینگ استفاده نمی شود.