I looked at VanityAddress.jar:
Random Key is generated in class VanityAddr using com.google.bitcoin.core.ECKey.
import com.google.bitcoin.core.ECKey;
...
key = new ECKey();
ECKey constructor is implemented as:
import java.security.SecureRandom;
...
private static final SecureRandom secureRandom = new [b]SecureRandom()[/b];
...
public ECKey()
{
ECKeyPairGenerator generator = new ECKeyPairGenerator();
ECKeyGenerationParameters keygenParams = new ECKeyGenerationParameters(ecParams, secureRandom);
generator.init(keygenParams);
AsymmetricCipherKeyPair keypair = generator.generateKeyPair();
ECPrivateKeyParameters privParams = (ECPrivateKeyParameters)keypair.getPrivate();
ECPublicKeyParameters pubParams = (ECPublicKeyParameters)keypair.getPublic();
this.priv = privParams.getD();
this.pub = pubParams.getQ().getEncoded();
this.creationTimeSeconds = (Utils.now().getTime() 1000L);
}
So the random number generator used was:
java.security.SecureRandom.
This class provides a cryptographically strong random number generator (RNG).
A cryptographically strong random number minimally complies with the statistical random number generator tests specified in FIPS 140-2, Security Requirements for Cryptographic Modules, section 4.9.1. Additionally, SecureRandom must produce non-deterministic output. Therefore any seed material passed to a SecureRandom object must be unpredictable, and all SecureRandom output sequences must be cryptographically strong, as described in RFC 1750: Randomness Recommendations for Security.
The implementation of SecureRandom is probably platform-dependant. Do we know the jvm/platform used to generate
1BTZ 1TBZ?
EDIT: TheButterZone pmed me his java runtime info. Nothing obscure, so it should use a "good" implementation of SecureRandom.