elgamalcrypt.java

来自「ElGamal method is an aymetric method to 」· Java 代码 · 共 34 行

JAVA
34
字号
package elgamal;import java.math.BigInteger;import java.util.Random;public class ElGamalCrypt {        Parameter params;    int pLength;    BigInteger un=BigInteger.ONE;    public ElGamalCrypt(Parameter params){        this.params=params;        pLength=params.getP().bitLength();    }        public BigInteger []chiffre(BigInteger m,PublicKey y){        BigInteger c1,c2;        BigInteger k=new BigInteger(pLength-1,new Random());        c1=params.getG().modPow(k, params.getP());        c2=y.getY().modPow(k, params.getP()).multiply(m).mod(params.getP());        BigInteger []ret={c1,c2};        return ret;    }        public BigInteger dechiffre(BigInteger []c,PrivateKey x){        BigInteger c1=c[0];        BigInteger c2=c[1];        BigInteger tmp=c1.modPow(params.getP().subtract(x.getX()).subtract(un), params.getP());        BigInteger m=tmp.multiply(c2).mod(params.getP());        return m;    }    }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?