آراس‌ای

در بحث رمزنگاری، آراس‌ای (RSA) شیوه‌ای برای رمزنگاری به روش کلید عمومی (Public Key) است. این روش نخستین روش مورد اعتماد در بین روش‌های رمزنگاری دیگر است و یکی از بزرگ‌ترین پیشرفت‌ها در زمینه رمزنگاری به حساب می‌آید. آراس‌ای همچنان به صورت وسیعی در تبادلات الکترونیکی استفاده می‌شود و در صورت استفاده درست با کلیدهای طولانی کاملا امن به نظر می‌رسد.
تاریخچه
این روش نخستین بار در سال ۱۹۷۷ توسط رونالد ریوست، آدی شامیر و لئونارد آدلمن در دانشگاه‌ام آی تی مطرح شد. اصطلاح آراس‌آ نیز از حروف ابتدای نام فامیل آن‌ها گرفته شده‌است. دانشگاه ام‌آی‌تی حق اختراع این روش را به نام خود ثبت کرد. این حق اختراع در ۲۱ سپتامبر سال ۲۰۰۰ میلادی منقضی شد.
توضیحات کارکرد
کلیات
آراس‌ای به‌طور کلی از دو کلید تشکیل می‌شود. کلید عمومی و کلید خصوصی. کلید عددی ثابت است که در محاسبات رمزنگاری استفاده می‌شود. کلید عمومی برای همه معلوم بوده و برای رمز کردن پیام استفاده می‌شود. این پیام فقط توسط کلید خصوصی باز می‌شود. به عبارتی دیگر همه می‌توانند یک پیام را رمز کنند اما فقط صاحب کلید خصوصی می‌تواند پیام را باز کند و بخواند.
تولید کلید
مراحل زیر برای تولید کلید طی می‌شود:
دو عدد اول بزرگ و را به صورت تصادفی بیابید به‌طوری‌که .
عدد n را محاسبه کنید به‌طوری‌که .
تابع فی را محاسبه کنید به‌طوری‌که
عدد را انتخاب کنید به‌طوری‌که و نسبت به اول باشد.
عدد به عنوان توان کلید عمومی منتشر می‌شود.
عدد را طوری بیابید که (باقی‌مانده ضرب دو عدد و نسبت به برابر ۱ باشد، به صورت: به ازای kهای طبیعی)
عدد به عنوان توان کلید خصوصی محافظت می‌شود.
دو عدد اول می‌توانند توسط روش پیدا کردن اعداد اول احتمالی پیدا شوند.
معمولا عدد عمومی (e) را در حدود ۲ ۱۶ انتخاب می‌کنند. البته بعضی از برنامه‌ها اعداد کوچکی را انتخاب می‌کنند که باعث سریعتر شدن و البته خطرات امنیتی در رمزنگاری می‌شود.
کلید عمومی تشکیل می‌شود از:
عدد n (عدد مشترک)
عدد e (عدد عمومی)
کلید خصوصی تشکیل می‌شود از:
عدد n (عدد مشترک)
عدد d (عدد خصوصی)
کلید خصوصی به صورت‌های دیگری غیر از ممکن است نگهداری شود.
و : اعداد اول برای ساختن کلید.
و ،
در تمام مراحل باید اجزای کلید خصوصی سری نگه داشته شود، دو عدد و اگر به عنوان صورتی از کلید خصوصی نگهداری نشود بهتر است به شیوه‌ای امن نابود شوند. زیرا با این دو عدد تمام اعداد و ، قابل محاسبه خواهند بود.
رمز کردن پیام
فرض کنید می‌خواهید پیامی را رمزنگاری کرده و به فردی دیگر بفرستید. شما می‌بایست کلید عمومی آن فرد را از او دریافت کرده و پیام خود را در قالب یک عدد (m) در بیاورید به‌طوری‌که این فرایند برگشت‌پذیر بوده و عدد شما از n کوچک‌تر باشد. بدیهی است اگر پیام بزرگ‌تر از حد معمول باشد آن را در بسته‌های جداگانه می‌فرستیم.
شما اکنون عدد C را محاسبه می‌کنید به‌طوری‌که
حال اگر پیام رمزنگاری شده C را برای فرد مذکور بفرستید او می‌تواند توسط کلید خصوصی‌اش آن را رمز گشایی کند و بفهمد.
باز کردن پیام
فرض کنید شما پیام رمز نگاری شده C را دریافت کرده‌اید و کلید خصوصی خود را در دسترس دارید. حال شما می‌توانید عدد m را که معادل پیام اصلی است از C,n،d بازیابی کنید.
مثال
انتخاب دو عدد اول مانند:
and
محاسبه 1=n = pq:
محاسبه تابع فی با تولید 1=(n) = (p − 1)(q − ۱) خواهدشد:
انتخاب هر عددی که نسبت به ۳۱۲۰ اول باشد.
در نظر می‌گیریم
محاسبه d, the وارون ضربی (هم‌نهشتی) e (mod (n)) ,
کلید عمومی (1=n = 3233, 1=e = ۱۷) برای پیام m هست. بنابران تابع رمز به صورت زیر است:
کلید خصوصی (1=d = ۲۷۵۳) هست. برای متن رمز c تابع رمزگشایی به صورت زیر خواهد بود:
برای نمونه در رمز گشایی 1=m = ۶۵, را حساب می‌کنیم.
برای رمزگشایی 1=c = ۲۷۹۰, را حساب می‌کنیم.