private void CheckPrivateKey(ECKeyGenerationParameters param, BigInteger privateKey)
        {
            var point = param.DomainParameters.G.Multiply(privateKey).Normalize();
            var x     = point.AffineXCoord.GetEncoded().Reverse();
            var y     = point.AffineYCoord.GetEncoded().Reverse();
            var pub   = PublicKey.GetOctets();

            if (!x.SequenceEqual(pub.Take(pub.Length / 2)) || !y.SequenceEqual(pub.Skip(pub.Length / 2)))
            {
                throw new CryptographicException("Закрытый ключ не соответствует открытому ключу.");
            }
        }