هندسة تقنيات الحاسوب
security
caser,playfair
حاسبات
رابع/اتصاالت
زيد محمد شيت
Caeser:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace caeser_enc
{
class encr //ceaser encryption
{
public string x;
public int z, m;
public void en()
{
Console.WriteLine("enter the key");
m = Convert.ToInt16(Console.ReadLine());
while (x != "3")
{
Console.WriteLine("enter plaintext");
x = Console.ReadLine();
Console.WriteLine("ciphertext is");
foreach (char c in x)
{
if (c == 32) { Console.Write("1"); }
else if (c == 90)
{
z = (m + c) - 26;
string y = (Convert.ToChar(z)).ToString();
Console.Write(y);
}
else if (c == 122)
{
z = (m + c) - 26;
string y = (Convert.ToChar(z)).ToString();
Console.Write(y);
}
else
{
z = m + c;
string y = (Convert.ToChar(z)).ToString();
Console.Write(y);
}}
Console.WriteLine("\n");}}}
class decr //ceaser dencryption
{
public string x, y;
public int z, m;
public void dec()
{
Console.WriteLine("enter the key");
m = Convert.ToInt16(Console.ReadLine());
while (x != "3")
{
Console.WriteLine("enter ciphertext");
x = Console.ReadLine();
Console.WriteLine("plaintext is");
foreach (char c in x)
{
if (c == 49) { Console.Write(" "); }
else if (c == 65)
{
z = (c - m) + 26;
string y = (Convert.ToChar(z)).ToString();
Console.Write(y);
}
else if (c == 97)
{
z = (c - m) + 26;
string y = (Convert.ToChar(z)).ToString();
Console.Write(y);
}
else
{
z = c - m;
string y = (Convert.ToChar(z)).ToString();
Console.Write(y);
}}
Console.WriteLine("\n");}}}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("to encription 1");
Console.WriteLine("to decription 2");
Console.WriteLine("for end program press 3");
int f = Convert.ToInt16(Console.ReadLine());
if (f == 1)
{
encr t = new encr();
t.en();
}
else if (f == 2)
{
decr g = new decr();
g.dec();}}}}
Encryption:
Decryption:
Playfair:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication8
{
class playfairenc
{
public int i = 0, x = 0, j = 0, k, k1;
public string mplain, ptext, x1;
public void enc()
{
mplain = "kgylopnuabcdefhimqrstvwxz";
string[] a = mplain.Select(c => c.ToString()).ToArray();
for (i = 0; i < mplain.Length; i++)
{
x++;
a[i] = mplain[i].ToString();
Console.Write(a[i]);
Console.Write(" ");
if (x == 5) { Console.WriteLine(); x = 0; }
}
while (x1 != "3")
{
Console.WriteLine("enter plain text");
ptext = Console.ReadLine().ToLower();
for (int i = 0; i < ptext.Length; i += 2)
{
if (((i + 1) < ptext.Length) && (ptext[i] == ptext[i + 1]))
{
ptext = ptext.Insert(i + 1, "x");
}
}
if ((ptext.Length % 2) > 0)
{
ptext += "x";
} Console.WriteLine("check 2 char");
Console.WriteLine(ptext);
string[] ptext1 = ptext.Select(c => c.ToString()).ToArray();
j = 0;
Console.WriteLine("cipher is");
do
{
for (i = 0; i < a.Length; i++)
{
if (a[i] == ptext1[j])
{
k = i;
}
}
for (i = 0; i < a.Length; i++)
{
if (a[i] == ptext1[j + 1])
{
k1 = i;
}}
//check row
if ((k < 5) && (k1 < 5)) //firts row
{
if (k < 4)
{ Console.Write(a[k + 1]); }
if (k1 < 4)
{
Console.Write(a[k1 + 1]);
}
else if (k == 4) { Console.Write(a[0]); }
else if (k1 == 4) { Console.Write(a[0]); }
}
else if (((k < 10) && (k1 < 10)) && ((k >= 5) && (k1 >= 5)))
//2nd row
{
if (k < 9)
{ Console.Write(a[k + 1]); }
if (k1 < 9)
{
Console.Write(a[k1 + 1]);
}
else if (k == 9) { Console.Write(a[5]); }
else if (k1 == 9) { Console.Write(a[5]); }
}
else if (((k < 15) && (k1 < 15)) && ((k >= 10) && (k1 >= 10)))
//3rd row
{
if (k < 14)
{ Console.Write(a[k + 1]); }
if (k1 < 14)
{
Console.Write(a[k1 + 1]);
}
else if (k == 14) { Console.Write(a[10]); }
else if (k1 == 14) { Console.Write(a[10]); }
}
else if (((k < 20) && (k1 < 20)) && ((k >= 15) && (k1 >= 15)))
//4th row
{
if (k < 19)
{ Console.Write(a[k + 1]); }
if (k1 < 19)
{
Console.Write(a[k1 + 1]);
}
else if (k == 19) { Console.Write(a[15]); }
else if (k1 == 19) { Console.Write(a[15]); }
}
else if (((k < 25) && (k1 < 25)) && ((k >= 20) && (k1 >= 20)))
//5th row
{
if (k < 24)
{ Console.Write(a[k + 1]); }
if (k1 < 24)
{
Console.Write(a[k1 + 1]);
}
else if (k == 24) { Console.Write(a[20]); }
else if (k1 == 24) { Console.Write(a[20]); }
}
//check col
if ((k % 5 == 0) && (k1 % 5 == 0)) //1st coloumn
{
if (k + 5 < 21)
{ Console.Write(a[k + 5]); }
else { Console.Write(a[0]); }
if (k1 + 5 < 21)
{ Console.Write(a[k1 + 5]); }
else { Console.Write(a[0]); }
}
else if (((k + 4) % 5 == 0) && ((k1 + 4) % 5 == 0))//2nd
coloumn
{
if ((k + 5) < 22)
{ Console.Write(a[k + 5]); }
else { Console.Write(a[1]); }
if ((k1 + 5) < 22)
{ Console.Write(a[k1 + 5]); }
else { Console.Write(a[1]); }
}
else if (((k + 3) % 5 == 0) && ((k1 + 3) % 5 == 0))
//3rd coloumn
{
if ((k + 5) < 23)
{ Console.Write(a[k + 5]); }
else { Console.Write(a[2]); }
if ((k1 + 5) < 23)
{ Console.Write(a[k1 + 5]); }
else { Console.Write(a[2]); }
}
else if (((k + 2) % 5 == 0) && ((k1 + 2) % 5 == 0))
//4th coloumn
{
if ((k + 5) < 24)
{ Console.Write(a[k + 5]); }
else { Console.Write(a[3]); }
if ((k1 + 5) < 24)
{ Console.Write(a[k1 + 5]); }
else { Console.Write(a[3]); }
}
else if (((k + 1) % 5 == 0) && ((k1 + 1) % 5 == 0))//5th
coloumn
{
if ((k + 5) < 25)
{ Console.Write(a[k + 5]); }
else { Console.Write(a[4]); }
if ((k1 + 5) < 25)
{ Console.Write(a[k1 + 5]); }
else { Console.Write(a[4]); }
}
//if row!=row & col!=col
else if (k < 5)
{
if ((k1 < 10) && (k1 > 4))
{
Console.Write(a[k + 5]);
Console.Write(a[k1 - 5]);
}
if ((k1 < 15) && (k1 > 9))
{
Console.Write(a[k + 10]);
Console.Write(a[k1 - 10]);
}
if ((k1 < 20) && (k1 > 14))
{
Console.Write(a[k + 15]);
Console.Write(a[k1 - 15]);
}
if ((k1 < 25) && (k1 > 19))
{
Console.Write(a[k + 20]);
Console.Write(a[k1 - 20]);
}
}
else if (k1 < 5)
{
if ((k < 10) && (k > 4))
{
Console.Write(a[k - 5]);
Console.Write(a[k1 + 5]);
}
if ((k < 15) && (k > 9))
{
Console.Write(a[k - 10]);
Console.Write(a[k1 + 10]);
}
if ((k < 20) && (k > 14))
{
Console.Write(a[k - 15]);
Console.Write(a[k1 + 15]);
}
if ((k < 25) && (k > 19))
{
Console.Write(a[k - 20]);
Console.Write(a[k1 + 20]);
}
}
else if ((k < 10) && (k > 4))
{
if ((k1 < 15) && (k1 > 9))
{
Console.Write(a[k + 5]);
Console.Write(a[k1 - 5]);
}
if ((k1 < 20) && (k1 > 14))
{
Console.Write(a[k + 10]);
Console.Write(a[k1 - 10]);
}
if ((k1 < 25) && (k1 > 19))
{
Console.Write(a[k + 15]);
Console.Write(a[k1 - 15]);
}
}
else if ((k1 < 10) && (k1 > 4))
{
if ((k < 15) && (k > 9))
{
Console.Write(a[k - 5]);
Console.Write(a[k1 + 5]);
}
if ((k < 20) && (k > 14))
{
Console.Write(a[k - 10]);
Console.Write(a[k1 + 10]);
}
if ((k < 25) && (k > 19))
{
Console.Write(a[k - 15]);
Console.Write(a[k1 + 15]);
}
}
else if ((k < 15) && (k > 9))
{
if ((k1 < 20) && (k1 > 14))
{
Console.Write(a[k + 5]);
Console.Write(a[k1 - 5]);
}
if ((k1 < 25) && (k1 > 19))
{
Console.Write(a[k + 10]);
Console.Write(a[k1 - 10]);
}
}
else if ((k1 < 15) && (k1 > 9))
{
if ((k < 20) && (k > 14))
{
Console.Write(a[k - 5]);
Console.Write(a[k1 + 5]);
}
if ((k < 25) && (k > 19))
{
Console.Write(a[k - 10]);
Console.Write(a[k1 + 10]);
}
}
else if ((k < 20) && (k > 14))
{
if ((k1 < 25) && (k1 > 19))
{
Console.Write(a[k + 5]);
Console.Write(a[k1 - 5]);
}
}
else if ((k1 < 20) && (k1 > 14))
{
if ((k < 25) && (k > 19))
{
Console.Write(a[k - 5]);
Console.Write(a[k1 + 5]);}}
j = j + 2;
} while (j < ptext.Length);
Console.WriteLine();
}}}
class playfairdec
{
public int i = 0, x = 0, j = 0, k, k1;
public string mplain, ptext, x1;
public void dec()
{
mplain = "kgylopnuabcdefhimqrstvwxz";
string[] a = mplain.Select(c => c.ToString()).ToArray();
for (i = 0; i < mplain.Length; i++)
{
x++;
a[i] = mplain[i].ToString();
Console.Write(a[i]);
Console.Write(" ");
if (x == 5) { Console.WriteLine(); x = 0; }
}
while (x1 != "3")
{
Console.WriteLine("enter cipher text");
ptext = Console.ReadLine().ToLower();
for (int i = 0; i < ptext.Length; i += 2)
{
if (((i + 1) < ptext.Length) && (ptext[i] == ptext[i + 1]))
{
ptext = ptext.Insert(i + 1, "x");}}
if ((ptext.Length % 2) > 0)
{
ptext += "x";
} Console.WriteLine("check 2 char");
Console.WriteLine(ptext);
string[] ptext1 = ptext.Select(c => c.ToString()).ToArray();
j = 0;
Console.WriteLine("plaintext is");
do
{
for (i = 0; i < a.Length; i++)
{
if (a[i] == ptext1[j])
{
k = i;}}
for (i = 0; i < a.Length; i++)
{
if (a[i] == ptext1[j + 1])
{
k1 = i;}}
//check row
if ((k < 5) && (k1 < 5)) //firts row
{
if (k >= 4)
{ Console.Write(a[k - 1]); }
if (k1 >= 4)
{
Console.Write(a[k1 - 1]);
}
else if (k == 0) { Console.Write(a[4]); }
else if (k1 == 0) { Console.Write(a[4]); }
}
else if (((k < 10) && (k1 < 10)) && ((k >= 5) && (k1 >= 5)))
//2nd row
{
if (k >= 9)
{ Console.Write(a[k - 1]); }
else if (k == 5) { Console.Write(a[9]); }
if (k1 >= 9)
{
Console.Write(a[k1 - 1]);
}
else if (k1 == 5) { Console.Write(a[9]); }
}
else if (((k < 15) && (k1 < 15)) && ((k >= 10) && (k1 >= 10)))
//3rd row
{
if (k >= 14)
{ Console.Write(a[k - 1]); }
if (k1 >= 14)
{
Console.Write(a[k1 - 1]);
}
else if (k == 10) { Console.Write(a[14]); }
else if (k1 == 10) { Console.Write(a[14]); }
}
else if (((k < 20) && (k1 < 20)) && ((k >= 15) && (k1 >= 15)))
//4th row
{
if (k >= 19)
{ Console.Write(a[k - 1]); }
if (k1 >= 19)
{
Console.Write(a[k1 - 1]);
}
else if (k == 15) { Console.Write(a[19]); }
else if (k1 == 15) { Console.Write(a[19]); }
}
else if (((k < 25) && (k1 < 25)) && ((k >= 20) && (k1 >= 20)))
//5th row
{
if (k >= 24)
{ Console.Write(a[k - 1]); }
if (k1 >= 24)
{
Console.Write(a[k1 - 1]);
}
else if (k == 20) { Console.Write(a[24]); }
else if (k1 == 20) { Console.Write(a[24]); }
}
//check col
if ((k % 5 == 0) && (k1 % 5 == 0)) //1st coloumn
{
if ((k - 5) >= 0)
{ Console.Write(a[k - 5]); }
else { Console.Write(a[20]); }
if ((k1 - 5) >= 0)
{ Console.Write(a[k1 - 5]); }
else { Console.Write(a[20]); }
}
else if (((k + 4) % 5 == 0) && ((k1 + 4) % 5 == 0))//2nd
coloumn
{
if ((k - 5) >= 1)
{ Console.Write(a[k - 5]); }
else { Console.Write(a[21]); }
if ((k1 - 5) >= 1)
{ Console.Write(a[k1 - 5]); }
else { Console.Write(a[21]); }
}
else if (((k + 3) % 5 == 0) && ((k1 + 3) % 5 == 0))
//3rd coloumn
{
if ((k - 5) >= 2)
{ Console.Write(a[k - 5]); }
else { Console.Write(a[22]); }
if ((k1 - 5) >= 2)
{ Console.Write(a[k1 - 5]); }
else { Console.Write(a[22]); }
}
else if (((k + 2) % 5 == 0) && ((k1 + 2) % 5 == 0))
//4th coloumn
{
if ((k - 5) >= 3)
{ Console.Write(a[k - 5]); }
else { Console.Write(a[23]); }
if ((k1 - 5) >= 3)
{ Console.Write(a[k1 - 5]); }
else { Console.Write(a[23]); }
}
else if (((k + 1) % 5 == 0) && ((k1 + 1) % 5 == 0))//5th
coloumn
{
if ((k - 5) >= 4)
{ Console.Write(a[k - 5]); }
else { Console.Write(a[24]); }
if ((k1 - 5) >= 4)
{ Console.Write(a[k1 - 5]); }
else { Console.Write(a[24]); }
}
//if row!=row & col!=col
else if (k < 5)
{
if ((k1 < 10) && (k1 > 4))
{
Console.Write(a[k + 5]);
Console.Write(a[k1 - 5]);
}
if ((k1 < 15) && (k1 > 9))
{
Console.Write(a[k + 10]);
Console.Write(a[k1 - 10]);
}
if ((k1 < 20) && (k1 > 14))
{
Console.Write(a[k + 15]);
Console.Write(a[k1 - 15]);
}
if ((k1 < 25) && (k1 > 19))
{
Console.Write(a[k + 20]);
Console.Write(a[k1 - 20]);
}
}
else if (k1 < 5)
{
if ((k < 10) && (k > 4))
{
Console.Write(a[k - 5]);
Console.Write(a[k1 + 5]);
}
if ((k < 15) && (k > 9))
{
Console.Write(a[k - 10]);
Console.Write(a[k1 + 10]);
}
if ((k < 20) && (k > 14))
{
Console.Write(a[k - 15]);
Console.Write(a[k1 + 15]);
}
if ((k < 25) && (k > 19))
{
Console.Write(a[k - 20]);
Console.Write(a[k1 + 20]);
}
}
else if ((k < 10) && (k > 4))
{
if ((k1 < 15) && (k1 > 9))
{
Console.Write(a[k + 5]);
Console.Write(a[k1 - 5]);
}
if ((k1 < 20) && (k1 > 14))
{
Console.Write(a[k + 10]);
Console.Write(a[k1 - 10]);
}
if ((k1 < 25) && (k1 > 19))
{
Console.Write(a[k + 15]);
Console.Write(a[k1 - 15]);
}
}
else if ((k1 < 10) && (k1 > 4))
{
if ((k < 15) && (k > 9))
{
Console.Write(a[k - 5]);
Console.Write(a[k1 + 5]);
}
if ((k < 20) && (k > 14))
{
Console.Write(a[k - 10]);
Console.Write(a[k1 + 10]);
}
if ((k < 25) && (k > 19))
{
Console.Write(a[k - 15]);
Console.Write(a[k1 + 15]);
}
}
else if ((k < 15) && (k > 9))
{
if ((k1 < 20) && (k1 > 14))
{
Console.Write(a[k + 5]);
Console.Write(a[k1 - 5]);
}
if ((k1 < 25) && (k1 > 19))
{
Console.Write(a[k + 10]);
Console.Write(a[k1 - 10]);
}
}
else if ((k1 < 15) && (k1 > 9))
{
if ((k < 20) && (k > 14))
{
Console.Write(a[k - 5]);
Console.Write(a[k1 + 5]);
}
if ((k < 25) && (k > 19))
{
Console.Write(a[k - 10]);
Console.Write(a[k1 + 10]);}}
else if ((k < 20) && (k > 14))
{
if ((k1 < 25) && (k1 > 19))
{
Console.Write(a[k + 5]);
Console.Write(a[k1 - 5]);}}
else if ((k1 < 20) && (k1 > 14))
{
if ((k < 25) && (k > 19))
{
Console.Write(a[k - 5]);
Console.Write(a[k1 + 5]);}}
j = j + 2;
} while (j < ptext.Length);
Console.WriteLine();}}}
class Program
{static void Main(string[] args)
{
Console.WriteLine("PlayFair algorithm");
Console.WriteLine("1-encryption");
Console.WriteLine("2-decryption");
Console.WriteLine("3-end the program");
int m =Convert .ToInt16 ( Console.ReadLine());
if (m==1){
playfairenc t = new playfairenc();
t.enc();}
else if (m == 2)
{
playfairdec t1 = new playfairdec();
t1.dec();}}}}
Encryption:
Decryption: