log.trace("B: "+CryptoUtil.tob64(B.toByteArray()));
if( log.isTraceEnabled() )
log.trace("v: "+CryptoUtil.tob64(v.toByteArray()));
BigInteger u = new BigInteger(1, ub);
if( log.isTraceEnabled() )
log.trace("u: "+CryptoUtil.tob64(u.toByteArray()));
BigInteger A_v2u = A.multiply(v.modPow(u, N)).mod(N);
if( log.isTraceEnabled() )
log.trace("A * v^u: "+CryptoUtil.tob64(A_v2u.toByteArray()));
BigInteger S = A_v2u.modPow(b, N);
if( log.isTraceEnabled() )