آراس‌ای

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

در بحث رمزنگاری، آراس‌اِی (RSA) شیوه‌ای برای رمزنگاری به روش کلید عمومی (Public Key) است. این روش نخستین روش مورد اعتماد در بین روش‌های رمزنگاری دیگر است و یکی از بزرگ‌ترین پیشرفت‌ها در زمینهٔ رمزنگاری به حساب می‌آید. آراس‌ای همچنان به صورت وسیعی در تبادلات الکترونیکی استفاده می‌شود و در صورت استفاده درست با کلیدهای طولانی کاملاً امن به نظر می‌رسد.

تاریخچه[ویرایش]

این روش نخستین بار در سال ۱۹۷۷ توسط رونالد ریواست، آدی شامیر و لئونارد آدلمن در دانشگاه ام آی تی مطرح شد. اصطلاح آراس‌آ نیز از حروف ابتدای نام فامیل آنها گرفته شده است. دانشگاه ام‌آی‌تی حق اختراع[۱] این روش را به نام خود ثبت کرد. این حق اختراع در ۲۱ سپتامبر سال ۲۰۰۰ میلادی منقضی شد.

توضیحات کارکرد[ویرایش]

کلیات[ویرایش]

آراس‌ای به طور کلی از دو کلید تشکیل می‌شود. کلید عمومی و کلید خصوصی. کلید عددی ثابت است که در محاسبات رمزنگاری استفاده می‌شود. کلید عمومی برای همه معلوم بوده و برای رمز کردن پیام استفاده می‌شود. این پیام فقط توسط کلید خصوصی باز می‌شود. به عبارتی دیگر همه می‌توانند یک پیام را رمز کنند اما فقط صاحب کلید خصوصی می‌تواند پیام را باز کند و بخواند.

تولید کلید[ویرایش]

مراحل زیر برای تولید کلید طی می‌شود:

  1. دو عدد اول بزرگ p و q را به صورت تصادفی بیابید به طوری که p \neq q.
  2. عدد n را محاسبه کنید به طوری که n = p q.
  3. تابع فی را محاسبه کنید به طوری که \varphi(n) = (p-1)(q-1) \,
  4. عدد e را انتخاب کنید به طوری که 1 < e < \varphi(n) \, و نسبت به \varphi(n) \, اول باشد.
    • عدد e به عنوان توان کلید عمومی منتشر می‌شود.
  5. عدد d را طوری بیابید که d e \equiv 1 \pmod{\varphi(n)} (باقی‌مانده ضرب دو عدد d و e نسبت به \varphi(n) برابر ۱ باشد، به صورت: de = 1 + k\varphi(n) به ازای kهای طبیعی)
    • عدد d به عنوان توان کلید خصوصی محافظت می‌شود.
  • دو عدد اول می‌توانند توسط روش پیدا کردن اعداد اول احتمالی پیدا شوند.
  • معمولاً عدد عمومی (e) را در حدود ۲۱۶ انتخاب می‌کنند. البته بعضی از برنامه ها اعداد کوچکی را انتخاب می‌کنند که باعث سریعتر شدن و البته خطرات امنیتی در رمزنگاری می‌شود.
  • کلید عمومی تشکیل می‌شود از :
    • عدد n (عدد مشترک)
    • عدد e (عدد عمومی)
  • کلید خصوصی تشکیل می‌شود از :
    • عدد n (عدد مشترک)
    • عدد d (عدد خصوصی)
  • کلید خصوصی به صورت‌های دیگری غیر از d ممکن است نگهداری شود.
    • p\, و q\,: اعداد اول برای ساختن کلید.
    • d\mod (p - 1)\, و d\mod(q - 1)\,،
    • q^{-1} \mod(p)\,.
  • در تمام مراحل باید اجزای کلید خصوصی سری نگه داشته شود، دو عدد p و q اگر به عنوان صورتی از کلید خصوصی نگهداری نشود بهتر است به شیوه‌ای امن نابود شوند. زیرا با این دو عدد تمام اعداد n و e، d قابل محاسبه خواهند بود.

رمز کردن پیام[ویرایش]

فرض کنید می خواهید پیامی را رمزنگاری کرده و به فردی دیگر بفرستید. شما می بایست کلید عمومی آن فرد را از او دریافت کرده و پیام خود را در قالب یک عدد (m) در بیاورید به طوری که این فرآیند برگشت پذیر بوده و عدد شما از n کوچک‌تر باشد. بدیهی است اگر پیام بزرگ‌تر از حد معمول باشد آن را در بسته‌های جداگانه می فرستیم. شما اکنون عدد C را محاسبه می کنید به طوری که  c = m^e \mod{n} حال اگر پیام رمزنگاری شدهٔ C را برای فرد مذکور بفرستید او می‌تواند توسط کلید خصوصی اش آن را رمز گشایی کند و بفهمد.

باز کردن پیام[ویرایش]

فرض کنید شما پیام رمز نگاری شدهٔ C را دریافت کرده اید و کلید خصوصی خود را در دسترس دارید. حال شما می‌توانید عدد m را که معادل پیام اصلی است از C،n،d بازیابی کنید. m = c^d \mod{n}

پانویس[ویرایش]

  1. (Patent)

منابع[ویرایش]