در این مطلب سعی میکنیم و با ذکر یک مثال ساده به تشریح این لگوریتم بپردازیم. از این الگوریتم برای تهیه کلید های مذکور، کد کردن اطلاعات، دی کد کردن یا آشکار سازی اطلاعات، تهیه امضاهای الکترونیکی و .... استفاده می شود.
الگوریتمRSA پس از آنکه ران ریوست (Ron Rivest)، آدام شامیر (Adam Shamir) و لن ادلمن (Len Adleman) در سال 1977 آنرا بدست آوردند به این نام مشهور شد، هرچند تکنیک های اولیه آن پیشتر در سال 1973 توسط فردی بنام کلیفورد کوکس (Clifford Cocks) بدست آمده بود اما تا سال 1977 اولا" الگورتیم کاملا" محرمانه بود و ثانیا" به سادگی آنچه در زیر بیان خواهیم کرد نبود.
تهیه کلید های عمومی و خصوصی
بطور خلاصه روش کار برای تهیه کلیدها به شرح زیر است :
1- دو عدد بزرگ (هر چه بزرگتر بهتر) اول به نام هایp وq را انتخاب می کنیم، بهتر است این اعداد از لحاظ سایز نزدیک به یکدیگر باشند.
2- عدد دیگری بنامn را معادل با حاصلضربp درq تعریف می کنیم : n = p x q
3- عدد چهارم یعنیm را معادل حاصلضربp-1 درq-1 تعریف می کنیم : (m = (p-1) x (q-1
4- عددe را که ازm کوچکتر است آنگونه پیدا می کنیم که بزرگترین مقسوم علیه مشترک این دو یک باشد به عبارتی نسبت به هم اول باشند.
5- عددی مانندd را پیدا کنید که باقیمانده حاصلضربd درe تقسیم برm مساوی عدد 1 باشد، یعنی :d x e) mod m = 1)
حال پس از طی این مراحل شما می توانید ازe وn بعنوان کلید عمومی و ازd وn بعنوان کلید اختصاصی استفاده کنید.
روش پنهان کردن و آشکار کردن
برای کد کردن اطلاعات کافی است عدد منتصب به هر کاراکتر - مثلا" ASCII - را که در اینجاM می نامیم در فرمول زیر قرار دهید و بجای ارسال آن عددC = Me mod n را ارسال کنید. در واقع دراینجا شما توانسته اید با کمک کلید عمومی، کاراکترM را بهC تبدیل کنید.
حال گیرنده برای آشکار سازی کافی است عدد دریافتی یعنیC را با استفاده از کلید خصوصی بهM تبدیل کند. برای اینکار کافی است از این فرمول استفاده کنید : M = Cd mod n ، بنابراین شما با دریافت کاراکتر کد شدهC و در دست داشتن کلید خصوصی توانسته اید کاراکتر اصلی را مشخص نمایید.
حامد غفاری« منبع: Ipnetsecurity.com »
نوشته
شده توسط
میثم نظریانی در
پنجشنبه 7 مهر 1384
و ساعت
11:09 ق.ظ
ویرایش شده در
-
و ساعت
-
نوشته شده
توسط
میثم نظریانی
در
پنجشنبه 7 مهر 1384
و ساعت
11:09 ق.ظ