SecureRandom sr = new SecureRandom();
DSAParametersGenerator dsapgen=new DSAParametersGenerator();
dsapgen.init(key_size, 80, sr);
DSAParameters dsap=dsapgen.generateParameters();
DSAKeyGenerationParameters DSAKeyGenPara =
new DSAKeyGenerationParameters(sr, dsap);
DSAKeyPairGenerator kpgen=new DSAKeyPairGenerator();
kpgen.init( DSAKeyGenPara );
AsymmetricCipherKeyPair keyPair=kpgen.generateKeyPair();
DSAPrivateKeyParameters prvKey=
(DSAPrivateKeyParameters)keyPair.getPrivate();
DSAPublicKeyParameters pubKey=
(DSAPublicKeyParameters)keyPair.getPublic();
x=prvKey.getX().toByteArray();
y=pubKey.getY().toByteArray();
p=dsap.getP().toByteArray();
q=dsap.getQ().toByteArray();
g=dsap.getG().toByteArray();
}