CodeLogy - کدلوژی
CodeLogy - کدلوژی
خواندن ۲ دقیقه·۲ سال پیش

رمزنگاری چیست!؟بخش سوم

در این بخش از <رمزنگاری چیست!؟> به الگورتیم رمزنگاری rsa میپردازیم.

الگوریتم رمزنگاری rsa یک رمزنگاری نامتقارن است که در این پست قبلا به رمزنگاری های نامتقارن اشاره داشتیم. رمزنگاری rsa محبوب ترین الگوریتم رمزنگاری نامتقارن است.در ادامه به الگوریتم این رمزنگاری میپردازیم.


ساخت کلید private & public:

ما برای رمزنگاری دیتا نیاز به کلید عمومی(public key) و برای رمزگشایی دیتا نیاز به کلید خصوصی ( private key) نیاز داریم برای ساخت این کلید ما دو عدد رندم اول(هرچه بزرگ تر امنیت بیشتر) انتخاب میکنیم ما برای درک بهتر از اعداد کوچیک استفاده میکنیم:

  • p = 419
  • q = 479

درهم ضربشون میکنیم p*q=n که جواب میشه 200701 و تابع فی شون رو حساب میکنیم :

  • j = (p-1)*(q-1)

جواب میشه 200701 حالا یک عدد بین n و j انتخاب میکنیم با دو شرط زیر:

  • عدد انتخابی به n و j اول باشد(مقسوم علیه جز یک نداشته باشند).
  • عدد بین 1و j باشد.

پس e = 98447 قرار میدیم.حالا عددی رو باید با این شرط انتخاب کنیم که ضربش در e باقی موندش با j برابر با یک باشه با این شرط عدد d = 154007 قرار میدیم حالا ما چی داریم

  • n = 200701
  • e = 98447
  • d = 154007

ما e کیلید مشترک در نظر میگیریم

کلید عمومی ما میشه (n,e)

کلید خصوصی ما میشه(d,e)

ما کلید خصوصی و عمومی رو تولید کردیم و میریم برای رمزنگاری دیتا.


رمزنگاری در rsa :

برای رمزنگاری دیتا ما اول میام اونو به توان e و بعد باقی موندشو با n حساب میکنیم فکر کنید ما 10 میخوایم رمزنگاری کنیم باید به شکل زیر عمل کنیم:

  • CP =mod( pow(10,98447),200701) = 174101

متن رمز شده ما شد 43044 حالا میخوایم رمزگشای کنیم.

رمزگشایی در rsa:

برای رمزگشایی دیتای رمز شده باید به این شکل عمل کنیم.CP به توان e برسونیم و باقی موندشو با d حساب کنیم:

  • ِdec = mod(pow(174101,154007),200701) = 10

و ما دیتا رمزنگاری شده رو رمزگشایی کردیم.


امنیت:

واقعیت اینه که همه الگوریتم های رمزنگاری قابل شکستن هستن مهم مدت زمان شکستن و امکانات است در مورد الگورتیم rsa از روش های زیر برای شکستن کلید میتوان استفاده کرد:

  • تجزیه کلید مشترک به عوامل اول
  • محاسبه ریشه n
  • حمله کانال جانبی
  • لایه گذاری
  • حمله جدول رنگین کمانی

درباره همه این روش ها در پست های بعد توضیح میدم.

مدت زمان کرک کلید های کوتاه:

128Bit = 0.48s

192Bit = 3s

256Bit = 103s

300Bit = 117s


ضعف ها:

اعداد اول ساخته شده توسط توابع RNG برای ساخت اعداد اول کاملا رندم نیستند و محدود هستن.

نیاز به پردازش زیادی به نسبت رمزنگاری های متقارن دارند و کند تر عمل میکند.

طول دیتا باید کمتر از کلید باشد.


در پست های بعد به حملاتی که روی rsa انجام میشود صحبت میکنیم.

به امید دیدار.

رمزنگاریار اس ایrsaرمزنگاری نامتقارنامنیت
ارائه مطالب و مقالات علوم کامپیوتر، برنامه نویسی، لینوکس و دنیای جذاب هک و امنیت - شبکه های اجتماعی ما zil.ink/codelogy
شاید از این پست‌ها خوشتان بیاید