public HandshakeRandom()
{
TimeSpan ts = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0));
gmt_unix_time = (UInt32) ts.TotalSeconds;
RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
byte[] randomBytes = new byte[28];
rngCsp.GetBytes(randomBytes);
random_bytes = randomBytes;
}