Java 类org.bouncycastle.crypto.params.CramerShoupPrivateKeyParameters 实例源码

项目:gwt-crypto    文件:CramerShoupKeyPairGenerator.java   
public AsymmetricCipherKeyPair generateKeyPair() {
    CramerShoupParameters csParams = param.getParameters();

    CramerShoupPrivateKeyParameters sk = generatePrivateKey(param.getRandom(), csParams);
    CramerShoupPublicKeyParameters pk = calculatePublicKey(csParams, sk);
    sk.setPk(pk);

    return new AsymmetricCipherKeyPair(pk, sk);
}
项目:gwt-crypto    文件:CramerShoupKeyPairGenerator.java   
private CramerShoupPrivateKeyParameters generatePrivateKey(SecureRandom random, CramerShoupParameters csParams){
    BigInteger p = csParams.getP();
    CramerShoupPrivateKeyParameters key = new CramerShoupPrivateKeyParameters(csParams,
            generateRandomElement(p, random), generateRandomElement(p, random),
            generateRandomElement(p, random), generateRandomElement(p, random),
            generateRandomElement(p, random));
    return key;
}
项目:gwt-crypto    文件:CramerShoupKeyPairGenerator.java   
private CramerShoupPublicKeyParameters calculatePublicKey(CramerShoupParameters csParams, CramerShoupPrivateKeyParameters sk) {
    BigInteger g1 = csParams.getG1();
    BigInteger g2 = csParams.getG2();
    BigInteger p = csParams.getP();

    BigInteger c = g1.modPow(sk.getX1(), p).multiply(g2.modPow(sk.getX2(), p));
    BigInteger d = g1.modPow(sk.getY1(), p).multiply(g2.modPow(sk.getY2(), p));
    BigInteger h = g1.modPow(sk.getZ(), p);

    return new CramerShoupPublicKeyParameters(csParams, c, d, h);
}
项目:Aki-SSL    文件:CramerShoupKeyPairGenerator.java   
public AsymmetricCipherKeyPair generateKeyPair() {
    CramerShoupParameters csParams = param.getParameters();

    CramerShoupPrivateKeyParameters sk = generatePrivateKey(param.getRandom(), csParams);
    CramerShoupPublicKeyParameters pk = calculatePublicKey(csParams, sk);
    sk.setPk(pk);

    return new AsymmetricCipherKeyPair(pk, sk);
}
项目:Aki-SSL    文件:CramerShoupKeyPairGenerator.java   
private CramerShoupPrivateKeyParameters generatePrivateKey(SecureRandom random, CramerShoupParameters csParams){
    BigInteger p = csParams.getP();
    CramerShoupPrivateKeyParameters key = new CramerShoupPrivateKeyParameters(csParams,
            generateRandomElement(p, random), generateRandomElement(p, random),
            generateRandomElement(p, random), generateRandomElement(p, random),
            generateRandomElement(p, random));
    return key;
}
项目:Aki-SSL    文件:CramerShoupKeyPairGenerator.java   
private CramerShoupPublicKeyParameters calculatePublicKey(CramerShoupParameters csParams, CramerShoupPrivateKeyParameters sk) {
    BigInteger g1 = csParams.getG1();
    BigInteger g2 = csParams.getG2();
    BigInteger p = csParams.getP();

    BigInteger c = g1.modPow(sk.getX1(), p).multiply(g2.modPow(sk.getX2(), p));
    BigInteger d = g1.modPow(sk.getY1(), p).multiply(g2.modPow(sk.getY2(), p));
    BigInteger h = g1.modPow(sk.getZ(), p);

    return new CramerShoupPublicKeyParameters(csParams, c, d, h);
}
项目:TinyTravelTracker    文件:CramerShoupKeyPairGenerator.java   
public AsymmetricCipherKeyPair generateKeyPair() {
    CramerShoupParameters csParams = param.getParameters();

    CramerShoupPrivateKeyParameters sk = generatePrivateKey(param.getRandom(), csParams);
    CramerShoupPublicKeyParameters pk = calculatePublicKey(csParams, sk);
    sk.setPk(pk);

    return new AsymmetricCipherKeyPair(pk, sk);
}
项目:TinyTravelTracker    文件:CramerShoupKeyPairGenerator.java   
private CramerShoupPrivateKeyParameters generatePrivateKey(SecureRandom random, CramerShoupParameters csParams){
    BigInteger p = csParams.getP();
    CramerShoupPrivateKeyParameters key = new CramerShoupPrivateKeyParameters(csParams,
            generateRandomElement(p, random), generateRandomElement(p, random),
            generateRandomElement(p, random), generateRandomElement(p, random),
            generateRandomElement(p, random));
    return key;
}
项目:TinyTravelTracker    文件:CramerShoupKeyPairGenerator.java   
private CramerShoupPublicKeyParameters calculatePublicKey(CramerShoupParameters csParams, CramerShoupPrivateKeyParameters sk) {
    BigInteger g1 = csParams.getG1();
    BigInteger g2 = csParams.getG2();
    BigInteger p = csParams.getP();

    BigInteger c = g1.modPow(sk.getX1(), p).multiply(g2.modPow(sk.getX2(), p));
    BigInteger d = g1.modPow(sk.getY1(), p).multiply(g2.modPow(sk.getY2(), p));
    BigInteger h = g1.modPow(sk.getZ(), p);

    return new CramerShoupPublicKeyParameters(csParams, c, d, h);
}
项目:gwt-crypto    文件:CramerShoupCoreEngine.java   
public BigInteger decryptBlock(CramerShoupCiphertext input)
    throws CramerShoupCiphertextException
{

    BigInteger result = null;

    if (key.isPrivate() && !this.forEncryption && key instanceof CramerShoupPrivateKeyParameters)
    {
        CramerShoupPrivateKeyParameters sk = (CramerShoupPrivateKeyParameters)key;

        BigInteger p = sk.getParameters().getP();

        Digest digest = sk.getParameters().getH();
        byte[] u1Bytes = input.getU1().toByteArray();
        digest.update(u1Bytes, 0, u1Bytes.length);
        byte[] u2Bytes = input.getU2().toByteArray();
        digest.update(u2Bytes, 0, u2Bytes.length);
        byte[] eBytes = input.getE().toByteArray();
        digest.update(eBytes, 0, eBytes.length);
        if (this.label != null)
        {
            byte[] lBytes = this.label.getBytes();
            digest.update(lBytes, 0, lBytes.length);
        }
        byte[] out = new byte[digest.getDigestSize()];
        digest.doFinal(out, 0);

        BigInteger a = new BigInteger(1, out);
        BigInteger v = input.u1.modPow(sk.getX1().add(sk.getY1().multiply(a)), p).
            multiply(input.u2.modPow(sk.getX2().add(sk.getY2().multiply(a)), p)).mod(p);

        // check correctness of ciphertext
        if (input.v.equals(v))
        {
            result = input.e.multiply(input.u1.modPow(sk.getZ(), p).modInverse(p)).mod(p);
        }
        else
        {
            throw new CramerShoupCiphertextException("Sorry, that ciphertext is not correct");
        }
    }
    return result;
}
项目:Aki-SSL    文件:CramerShoupCoreEngine.java   
public BigInteger decryptBlock(CramerShoupCiphertext input)
    throws CramerShoupCiphertextException
{

    BigInteger result = null;

    if (key.isPrivate() && !this.forEncryption && key instanceof CramerShoupPrivateKeyParameters)
    {
        CramerShoupPrivateKeyParameters sk = (CramerShoupPrivateKeyParameters)key;

        BigInteger p = sk.getParameters().getP();

        Digest digest = sk.getParameters().getH();
        byte[] u1Bytes = input.getU1().toByteArray();
        digest.update(u1Bytes, 0, u1Bytes.length);
        byte[] u2Bytes = input.getU2().toByteArray();
        digest.update(u2Bytes, 0, u2Bytes.length);
        byte[] eBytes = input.getE().toByteArray();
        digest.update(eBytes, 0, eBytes.length);
        if (this.label != null)
        {
            byte[] lBytes = this.label.getBytes();
            digest.update(lBytes, 0, lBytes.length);
        }
        byte[] out = new byte[digest.getDigestSize()];
        digest.doFinal(out, 0);

        BigInteger a = new BigInteger(1, out);
        BigInteger v = input.u1.modPow(sk.getX1().add(sk.getY1().multiply(a)), p).
            multiply(input.u2.modPow(sk.getX2().add(sk.getY2().multiply(a)), p)).mod(p);

        // check correctness of ciphertext
        if (input.v.equals(v))
        {
            result = input.e.multiply(input.u1.modPow(sk.getZ(), p).modInverse(p)).mod(p);
        }
        else
        {
            throw new CramerShoupCiphertextException("Sorry, that ciphertext is not correct");
        }
    }
    return result;
}
项目:TinyTravelTracker    文件:CramerShoupCoreEngine.java   
public BigInteger decryptBlock(CramerShoupCiphertext input)
    throws CramerShoupCiphertextException
{

    BigInteger result = null;

    if (key.isPrivate() && !this.forEncryption && key instanceof CramerShoupPrivateKeyParameters)
    {
        CramerShoupPrivateKeyParameters sk = (CramerShoupPrivateKeyParameters)key;

        BigInteger p = sk.getParameters().getP();

        Digest digest = sk.getParameters().getH();
        byte[] u1Bytes = input.getU1().toByteArray();
        digest.update(u1Bytes, 0, u1Bytes.length);
        byte[] u2Bytes = input.getU2().toByteArray();
        digest.update(u2Bytes, 0, u2Bytes.length);
        byte[] eBytes = input.getE().toByteArray();
        digest.update(eBytes, 0, eBytes.length);
        if (this.label != null)
        {
            byte[] lBytes = this.label.getBytes();
            digest.update(lBytes, 0, lBytes.length);
        }
        byte[] out = new byte[digest.getDigestSize()];
        digest.doFinal(out, 0);

        BigInteger a = new BigInteger(1, out);
        BigInteger v = input.u1.modPow(sk.getX1().add(sk.getY1().multiply(a)), p).
            multiply(input.u2.modPow(sk.getX2().add(sk.getY2().multiply(a)), p)).mod(p);

        // check correctness of ciphertext
        if (input.v.equals(v))
        {
            result = input.e.multiply(input.u1.modPow(sk.getZ(), p).modInverse(p)).mod(p);
        }
        else
        {
            throw new CramerShoupCiphertextException("Sorry, that ciphertext is not correct");
        }
    }
    return result;
}