public override string Encrypt(string text)
 {
     p = new BigInteger("6277101735386680763835789423207666416083908700390324961279", 10);
     a = new BigInteger("-3", 10);
     b = new BigInteger("64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1", 16);
     xG = FromHexStringToByte("03188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012");
     n = new BigInteger("ffffffffffffffffffffffff99def836146bc9b1b4d22831", 16);
     BigInteger d = GenPrivateKey(192);
     Q = GenPublicKey(d);
     GOST hash = new GOST(256);
     byte[] H = hash.GetHash(Encoding.Default.GetBytes(text));
     signature = GenerateSignature(H, d);
     return signature;
 }
 public override string Decrypt(string text)
 {
     GOST hash = new GOST(256);
     byte[] H = hash.GetHash(Encoding.Default.GetBytes(text));
     return CheckSignature(H, signature, Q).ToString();
 }