جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
الگوريتم RSA
-(5 Body) 
الگوريتم RSA
Visitor 416
Category: دنياي فن آوري
الگوريتم 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 و در دست داشتن کليد خصوصي توانسته ايد کاراکتر اصلي را مشخص نماييد.
يک مثال:
با توجه به روشي که در مطلب قبل ارايه کرديم در اينجا بعنوان نمونه مثالي از نحوه تعريف کليد هاي عمومي و خصوصي خواهيم آورد. اما براي سادگي محاسبات از اختيار کردن اعداد بزرگ دوري خواهيم کرد و توجه شما را به اين نکته جلب مي کنيم که هرچقدر اعداد اوليه بزرگتر باشند احتمال شکستن رمز در مدت زمان محدود ناچيزتر مي شود.
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 براي اينکار مناسب باشد چرا که 7×3=21 باقيمانده اي معادل 1 بر m=20 دارد.
حال مي توانيم از زوج (33,3) بعنوان کليد عمومي و از زوج (33,7) بعنوان کليد خصوصي استفاده کنيم. حال اگر از فرمول هايي که در مطلب قبل براي کد کردن و آشکار سازي استفاده کنيم براي اعداد 1 تا 1632 به جدول زير خواهيم رسيد.

m

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

c

0

1

8

27

31

26

18

13

17

3

10

11

12

19

5

9

4

m

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

29

24

28

14

21

22

23

30

16

20

15

7

2

6

25

32

بنابراين هم اکنون شما يک جدول تبديل کد داريد که با کمک کليد عمومي اعداد صفر تا 32 را به اعدادي کد شده و در همين رنج تبديل کرده ايد. اما اگر دقت کنيد تعدادي از اعداد دقيقا” به همان عدد خود تبديل شده اند که به اينها unconcealed يا مخفي نشده گفته مي شود. اولآ بايد بدانيم که 0 و 1 همواره به همين اعداد تبديل مي شوند و مطلب ديگر اينکه اگر رنج دو عدد اول ابتدايي را بزرگ در نظر بگيريم ديگر مشکلي پيش نخواهد آمد.
حال کافي است فرض کنيم A=2 ، B=3 ، C=4 و … Z=27 و جملات مربوطه را کد نماييم. دقت کنيد که معمولا” از 0 و 1 براي کدينگ استفاده نمي شود.
منبع:http://www.academist.ir
Add Comments
Name:
Email:
User Comments:
SecurityCode: Captcha ImageChange Image