-
Notifications
You must be signed in to change notification settings - Fork 0
/
Elgamal_Enkriptimi.cs
77 lines (64 loc) · 2.69 KB
/
Elgamal_Enkriptimi.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Numerics;
using ElgamalAgoritmi;
namespace CryptographyAlgorithms
{
public partial class Elgamal_Enkriptimi : Form
{
public Elgamal_Enkriptimi()
{
InitializeComponent();
}
private void ButtonEncryption_Click(object sender, EventArgs e)
{
//Hyrja
BigInteger Message = BigInteger.Parse(txtboxMesazhi.Text);
Int32 PjesaPareQelesitPublik = Int32.Parse(txtboxPjesaPareQelesitPublik.Text);
Int32 PjesaDyteQelesitPublik = Int32.Parse(txtboxPjesaDyteQelesitPublik.Text);
BigInteger PjesaTretQelesitPublik = BigInteger.Parse(txtboxPjesaTreteQelesitPublik.Text);
//Gjenerimi i qelesit te perkohshem (session qelesit)
Int32 QelesiRastitSession;
if (checkbox_Qelesi_Session.Checked == true)
{
txtboxQelesi_Session.Text = "";
Random tempRastit = new Random();
QelesiRastitSession = (42 + tempRastit.Next()) % (Math.Abs(Convert.ToInt32(PjesaPareQelesitPublik-PjesaDyteQelesitPublik))) + 6;
}
else
{
QelesiRastitSession = int.Parse(txtboxQelesi_Session.Text);
}
//enkriptimi
BigInteger PjesaPareTekstitEnkriptuar = BigInteger.Pow(PjesaDyteQelesitPublik, QelesiRastitSession) % PjesaPareQelesitPublik;
BigInteger PjesaDyteTesktitEnkriptuar = (BigInteger.Pow(PjesaTretQelesitPublik, QelesiRastitSession) * Message) % PjesaPareQelesitPublik;
//dalja
LabelCiphertextOutput.Text = Convert.ToString(PjesaPareTekstitEnkriptuar + " / " + PjesaDyteTesktitEnkriptuar);
}
private void KeyGenerationToolStripMenuItem_Click(object sender, EventArgs e)
{
Elgamal_Gjenerimi_Qelesave temp = new Elgamal_Gjenerimi_Qelesave();
temp.Hide();
temp.Show();
}
private void DecryptionToolStripMenuItem_Click(object sender, EventArgs e)
{
Elgamal_Dekriptimi temp = new Elgamal_Dekriptimi();
temp.Hide();
temp.Show();
}
private void AboutCryptographyAlgorithmsToolStripMenuItem_Click(object sender, EventArgs e)
{
RrethAlgoritmitElgamal temp = new RrethAlgoritmitElgamal();
temp.Hide();
temp.Show();
}
}
}