توضیح کلی درباره رمزنگاری RSA¶
رمزنگاری RSA یکی از رایجترین و پرکاربردترین الگوریتمهای رمزنگاری است. RSA یک الگوریتم رمزنگاری نامتقارن است، به این معنی که از دو کلید مختلف استفاده میکند: یک کلید عمومی برای رمزگذاری و یک کلید خصوصی برای رمزگشایی.
مفاهیم اصلی¶
-
رمزنگاری نامتقارن: برخلاف رمزنگاری متقارن (که در آن از یک کلید واحد برای رمزگذاری و رمزگشایی استفاده میشود)، در RSA دو کلید مختلف وجود دارد:
- کلید عمومی که بهصورت عمومی در دسترس است و برای رمزگذاری استفاده میشود.
- کلید خصوصی که محرمانه نگه داشته میشود و برای رمزگشایی به کار میرود.
-
فاکتورگیری از اعداد اول: امنیت RSA بر پایه سختی فاکتورگیری اعداد مرکب بزرگ به اعداد اول آنها استوار است. کلید عمومی از حاصلضرب دو عدد اول بزرگ (که بخشی از کلید خصوصی هستند) تشکیل میشود و فاکتورگیری از این اعداد در ابعاد بزرگ، به صورت محاسباتی بسیار دشوار است.
تولید کلید¶
- دو عدد اول بزرگ، p و q ، انتخاب میشوند.
- حاصلضرب آنها N = p \times q بخش مشترک کلید عمومی و خصوصی است.
-
نمایه عمومی e باید به گونهای انتخاب شود که 1=(e,\phi(N))GCD
- در دنیای واقعی معمولاً عدد 65537 به دلیل امنیت و کارایی آن انتخاب میشود.
-
نمایه خصوصی d از طریق معکوس پیمانه ای e محاسبه میشود.
رمزگذاری و رمزگشایی¶
- رمزگذاری: پیام (متن ساده) با استفاده از کلید عمومی به رمز تبدیل میشود.
- رمزگشایی: رمز تولید شده با استفاده از کلید خصوصی به متن اصلی تبدیل میشود. RSA بر اساس نظریه اعداد و حساب پیمانه ای است. فرمول اصلی رمزگذاری به صورت زیر است:
- C متن رمز شده است
- M متن اصلی (پیام) است
- e نمایه عمومی است
- N حاصل ضرب دو عدد اول است
فرمول رمزگشایی نیز به صورت زیر است:
- d نمایه خصوصی است.
¶
- دو عدد اول بزرگ، p و q ، انتخاب میشوند.
- حاصلضرب آنها N = p \times q بخش مشترک کلید عمومی و خصوصی است.
-
نمایه عمومی e باید به گونهای انتخاب شود که 1=(e,\phi(N))GCD
-
نمایه خصوصی d از طریق معکوس پیمانه ای e محاسبه میشود.
مثال RSA¶
تولید کلید¶
- دو عدد اول را انتخاب کنید: p = 61 ، q = 53 .
- محاسبه N = p \times q = 61 \times 53 = 3233 .
- محاسبه \phi(N) = (p-1) \times (q-1) = 3120 .
- انتخاب e = 17 ، که نسبت به 3120 اول است.
- محاسبه d ، معکوس پیمانه ای e به \phi(N) ، که برابر با d = 2753 است.
رمزگذاری¶
- فرض کنید پیام M = 65 است.
- متن رمز شده:
رمزگشایی¶
- متن رمز شده C = 2790 .
- پیام اصلی:
نویسنده