<MT programming/> سلام دوستان ? <MT programming>
همونطور که باهم توی ویدئوی آشنایی با رمزنگاری (Cryptography) در 5 دقیقه دیدیم...
ندیدین ؟! ?
یکی از متداول ترین و ایمن ترین روش های رمزنگاری ، رمزنگاری با استفاده از کلید عمومی یا همون رمزنگاری نامتقارن هستش
الگوریتم RSA هم از اولین و پرکاربردترین الگوریتم ها برای این روشه
در این آموزش سعی میکنیم بصورت مختصر با نحوه کار این الگوریتم و دودوتا چارتای ریاضی اون به زبان خیلی ساده آشنا بشیم
اما اگر دوست دارین دلیل تک تک مراحل رو بدونید میتونید ویدئوی این آموزش رو هم توی آپارات و یوتوب ببینید که اونجا به توضیحات و بررسی خیلی خیلی بیشتری میپردازیم و مثال های بیشتری رو با هم میبینیم
اما الگوریتم RSA چطوری کار میکنه ؟!
اما بیایم بخاطر اینکه آسونتر باشه و محاسباتمون راحت تر بشه اعداد خیلی کوچیک انتخاب کنیم !
بطور مثال :
p= 2 ,q = 7
n = 2 × 7 = 14
ϕ ( n ) = (p-1)(q-1) = 1 × 6 = 6
1: عدد بین 1 وϕ ( n ) باشد
2: عدد انتخابی نسبت به n و ϕ ( n ) اول باشد ( هیچ مقسوم علیه مشترکی جز یک نداشته باشند)
پس e (همون عددی که قراره انتخاب کنیم )باید بین 1 تا 6 باشه و بخاطر شرط دوم اعداد زوجمون و3 چون عامل مشترک با n و ϕ ( n ) دارن حذف میشن و در نتیجه فقط 5 میمونه پس :
e = 5
حاصل باقیمانده تقسیم ، ضرب اون عدد در e نسبت بهϕ ( n ) برابر یک باشه !
اما این یعنی چی ؟؟! یعنی باید بیایم عدد d رو جوری پیدا کنیم که توی این شرط صدق کنه :
d × e ( mod ϕ ( n )) = 1
پس برای d هم میتونیم 11 رو داشته باشیم چرا ؟ چون :
11 × 5 = 55
55 mod(6) = 1
حالا در نهایت چی داریم ؟
n = 14 ,
e = 5 ,
d = 11
طبق الگوریتم RSA از e و n بعنوان کلید عمومی و از e و d بعنوان کلید خصوصی استفاده میکنیم
کلید عمومی = (14 و 5 )
کلید خصوصی = (14 و 11)
فرض کنید پیامی که میخوایم برای دوستمون بفرستیم عدد 2 هست
حالا با استفاده از کلید عمومی دوستمون که قبلا برامون فرستاده(کلید عمومی = (14 و 5 )) میایم : 2 رو به توان 5 میرسونیم و باقیماندشو نسبت به 14 حساب میکنیم :
2^5 = 32
32 mod (14 ) = 4
پس پیام رمز گذاری شدمون میشه 4 .
اما حالا دوستمون با استفاده از کلید خصوصی ای (کلید خصوصی = (14 و 11) )که فقط و فقط خودش داره میاد اون رو رمز گشایی میکنه :
پس 4 رو به توان 11 میرسونه و و باقیماندشو نسبت به 14 حساب میکنه :
4^11 = 4,194,304
4,194,304 mod (14 ) = 2
و اینطوری متوجه میشه که پیام ما عدد 2 بوده ...
<MT programming/> ?حال دلتون خوب <MT programming>