private void InitDH()
	{
		this.PublicKey = new BigInteger("0");
		while (this.PublicKey.equals(zero))
		{
			this.Prime = BigInteger.probablePrime(BITLENGTH, new Random());
			this.Generator = BigInteger.probablePrime(BITLENGTH, new Random());
			
			this.PrivateKey = new BigInteger(GenerateRandomHexString(30), 16);
			
			if (this.Generator.intValue() > this.Prime.intValue())
			{
				BigInteger temp = this.Prime;
				this.Prime = this.Generator;
				this.Generator = temp;
			}
			
			this.PublicKey = this.Generator.modPow(this.PrivateKey, this.Prime);
		}
	}