Class keygen.cs Class MO.cs

LISTING PROGRAM

1. Class keygen.cs

using System; using System.Numerics; namespace Program_Skripsi { summary Description of keygen. summary public class keygen { private int prima; public keygenint p { this.prima = p; } public static BigInteger bilprimaBigInteger random{ int counter=0; for int i=2; irandom; i++{ ifrandom i == 0 counter++; } ifcounter 0 return 0; else return random; } public static BigInteger gcdBigInteger m, BigInteger n{ BigInteger r = m n; while r = 0{ return gcdn,r; } return n; } public static int kunci_eAint prima{ Random rnd = new Random; int key_eA = rnd.Next2, prima-1; if gcdkey_eA,prima-1 == 1 return key_eA; else return kunci_eAprima; } public static int kunci_dAint prima, BigInteger eA{ int key_dA = 1; BigInteger hasil = key_dAeA prima-1; while hasil = 1 hasil = 0{ key_dA++; Universitas Sumatera Utara hasil = key_dAeA prima-1; } if hasil == 0 key_dA=eA return kunci_dA prima, eA; else return key_dA; } public static BigInteger kunci_eBint prima{ Random rnd2 = new Random; BigInteger key_eB = rnd2. Next2, prima-1; if gcdkey_eB,prima-1==1 return key_eB; else return kunci_eBprima; } public static int kunci_dBint prima, int eA, int dA, BigInte ger eB{ BigInteger hasil; int key_dB=1; if gcdeB,prima-1==1 { hasil = key_dBeB prima-1; while hasil = 1 hasil = 0{ key_dB++; hasil = key_dBeB prima-1; } if hasil == 0 key_dB=eA key_dB=dA key_dB=eB return kunci_dBprima, eA, dA, eB; else return key_dB; } else return kunci_dBprima, eA, dA, eB; } } }

2. Class MO.cs

using System; using System.Collections.Generic; using System.Text; using System.Numerics; namespace Program_Skripsi { summary Description of mo. summary public class MO { private string teks; public MOstring t Universitas Sumatera Utara { this.teks = t; } public static string enkripsiPlainstring plaintxt, int prima , int eA{ StringBuilder bitsplain = new StringBuilder; StringBuilder text = new StringBuilder; BigInteger c1x; BigInteger sum, sum2=1, aaa=0, hasil=0, sumx, sumx2=1; foreach char c in plaintxt{ bitsplain. Appendc; } BigInteger[] p = new BigInteger[bitsplain.Length]; for int i=0; ibitsplain.Length; i++{ p[i] = Convert. ToInt32bitsplain[i]; c1x = BigInteger.Powp[i],eA prima; text. Appendc1x; text. Append ; } return text. ToString; } public static string enkripsiC1string C1,int prima, int eB{ string[] bitsplain = C1. Split ; StringBuilder text = new StringBuilder; BigInteger c2x; BigInteger[] c1 = new BigInteger[bitsplain.Length]; BigInteger sum, sum2=1, aaa=0, hasil=0, sumx, sumx2=1; for int i=0; ibitsplain.Length-1; i++{ c1[i]=Convert. ToInt32bitsplain[i]; c2x = BigInteger.Powc1[i],eB prima; text. Appendc2x; text. Append ; } return text. ToString; } public static string dekripsiC2string C2,int prima, int dA{ string[] bitsplain = C2. Split ; StringBuilder text = new StringBuilder; BigInteger c3x; BigInteger[] c2 = new BigInteger[bitsplain.Length]; BigInteger sum, sum2=1, aaa=0, hasil=0, sumx, sumx2=1; for int i=0; ibitsplain.Length-1; i++{ c2[i]=Convert. ToInt32bitsplain[i]; c3x = BigInteger.Powc2[i],dA prima; text. Appendc3x; text. Append ; } return text. ToString; } public static string dekripsiC3string C3,int prima, int dB{ string[] bitsplain = C3. Split ; Universitas Sumatera Utara BigInteger plain; BigInteger[] c3 = new BigInteger[bitsplain.Length]; StringBuilder sb = new StringBuilder; BigInteger sum, sum2=1, aaa=0, hasil=0, sumx, sumx2=1; for int i=0; ibitsplain.Length-1; i++{ c3[i]=Convert. ToInt32bitsplain[i]; plain = BigInteger.Powc3[i],dB prima; char asli = charplain; sb. Appendasli; } return sb. ToString; } } }

3. Class erCode.cs