پیاده سازی مولد رمزنگاری و رمزگشایی نامتقارن RSA
چکیده:
هدف طراحی و ساخت یک مولد سخت افزاری سریع است که بتوان داده ها را با کلید عمومی رمز نموده و با کلید خصوصی رمزگشایی نماید.
دستگاه از 2 قسمت تشکیل شده است :
1- میکروکنترلر بعنوان کنترلر اصلی
2- ارتباط سریال با کامپیوتر جهت دریافت داده ها
سخت افزار:
منبع تغذیه 5 ولت برای تامین ولتاژ مدار توسط رگولاتور L7805
میکروکنترلر AVR سری Atmega32 بعنوان کنترلر اصلی
نرم افزار :
به زبان C در محیط Atmel Studio توسط پروگرامر AVR
نحوه کار دستگاه :
الگوریتم دستگاه بصورت زیر می باشد :
1. گرفتن مقادیر p و q از کاربر
2. چک کردن اول بودن مقادیر فوق
3. تولید کلید های عمومی و خصوصی
4. گرفتن داده مورد نظر برای رمزگذاری
5. فرایند رمزگذاری
6. فرایند رمزگشایی
برای ایجاد ارتباط سریال از ترمینال سریال (PUTTY) استفاده شده است .
مقادیر p و q از طریق سریال کامپیوتر توسط دستور زیر گرفته می شود :
scanf("%d",&p)
scanf("%d",&q)
اول بودن مقادیر فوق توسط تابع زیر انجام می گیرد:
prime(p)
prime(q)
ü لازم به ذکر است دو عدد ورودی حتما بایستی اول باشند و مساوی همدیگر نباشند همچنین حاصلضرب آنها نیز بایستی بیشتر از 256 باشد تا بتواند تمامی کاراکترهای موجود را رمزگذاری نماید.
داده مورد نظر توسط دستور زیر گرفته می شود :
scanf("%s",msg)
دو مقدار n و Phi بصورت زیر ایجاد می شود :
n=p*q
t=(p-1)*(q-1)
کلید های عمومی توسط تابع زیر ایجاد می شود :
(void ce(void
کلید های خصوصی توسط تابع زیر ایجاد می شود :
(long int cd (long int
رمزگذاری توسط تابع زیر انجام می گیرد :
void encrypt ( void )
رمزگشایی توسط تابع زیر انجام می گیرد :
void decrypt ( void )