Network Information Securrity
RSA (Encryption -Decryption) Program on C-sharp
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace NIS_SAF
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btn_res_Click(object sender, EventArgs e)
{
int n = Convert.ToInt32(txt_n.Text)-1;
for (int q = 1; q <= n/2; q += 2)
{
for (int k = 1; k <=(n / 2); k++)
{
if (n == Math.Pow(2, k) * q)
{
lbl_res.Text = "K=" + k.ToString() + ", Q=" + q.ToString();
break;
}
}
}
}
private void button1_Click(object sender, EventArgs e)
{
int num = Convert.ToInt32(txt_prme.Text);
if (check_prime(num))
prime(num);
else
nonprime(num);
}
private void nonprime(int num)
{
int rem = 0;
for (int i = 2; i <= num / 2; i++)
{
if (num % i == 0)
{
rem = num / i;
if (check_prime(i) == true && check_prime(rem) == true)
{
label6.Text = i.ToString() + "," + rem.ToString();
label6.Text +="\n There are "+ ((i - 1) * (rem - 1)).ToString()+" co-prime number of "+num;
co_prime(num,i,rem);
}
}
}
}
private void co_prime(int num,int div,int rem)
{
label6.Text += "\n";
for (int i = 1; i < num; i++)
{
if (i % div == 0 || i % rem == 0)
{ }
else
{
label6.Text += i.ToString()+",";
}
}
label6.Text += "Are Co prime of " + num.ToString();
}
private void co_primes(int num, int div, int rem)
{
lbl_show.Text += "\n";
for (int i = 1; i < num; i++)
{
if (i % div == 0 || i % rem == 0)
{ }
else
{
// lbl_show.Text += i.ToString() + ",";
}
}
// lbl_show.Text += "Are Co prime of " + num.ToString();
}
private bool check_prime(int i)
{
for (int j = 2; j <= i / 2; j++)
{
if (i % j == 0)
return false;
}
return true;
}
private void prime(int num)
{
label6.Text="There are "+(num-1)+" co-prime in "+num+"\n";
for (int i = 1; i <=num-1; i++)
{
label6.Text += i.ToString() + ",";
}
}
private void btn_rsa_Encrypt_Click(object sender, EventArgs e)
{
int mod = Convert.ToInt32(txt_p.Text) * Convert.ToInt32(txt_q.Text);
int Qn = (Convert.ToInt32(txt_p.Text) -1)*( Convert.ToInt32(txt_q.Text)-1);
lbl_show.Text="CO PRIME OF "+mod+" ARE "+Qn;
co_primes(mod, Convert.ToInt32(txt_p.Text), Convert.ToInt32(txt_q.Text));
int res=Rsa_EN(Convert.ToInt32(txt_m.Text), 7, mod);
lbl_show.Text += "Encrypt Messege is " + res;
lbl_show.Text += "\n" + Rsa_dec(mod, Qn, 7, res);
}
int Rsa_EN(int m, int e, int mod)
{
int mul = 1;
int add = 1;
int pow = 1;
for (int i = 0; i < 1; i++)
{
mul *= (int)(Math.Pow(m, pow) % mod);
pow *= 2;
add += pow;
if (add > e)
break;
else
i--;
}
return mul % mod;
}
int Rsa_dec(int mod, int Qn, int e, int c)
{
int d =( Qn + 1 )/ e;
int mul = 1;
int add = 1;
int pow = 1;
for (int i = 0; i < 1; i++)
{
mul *= (int)(Math.Pow(11, pow) % mod);
if (pow == 8)
{
}
else
{
pow *= 2;
}
add += pow;
if (add > d)
break;
else
i--;
}
return mul % mod;
}
}
}
No comments:
Post a Comment