📄 main.java
字号:
package elgamal;import java.math.BigInteger;import java.util.Random;public class Main { public static void main(String[] args) { java.security.SecureRandom random=new java.security.SecureRandom(); Parameter params=new Parameter(1024,100);//,random); KeyPairGenerator clef=new KeyPairGenerator(new Random(),params); PrivateKey x=clef.getPrivate(); PublicKey y=clef.getPublic(); /********Chiffrement ElGamal*************/ String message="Je suis Salem Mathlouthi. Ceci est un test de la m閠hode de chiffrement ElGamal"; byte[]bm=message.getBytes(); BigInteger plaintext=new BigInteger(bm); ElGamalCrypt elgamal=new ElGamalCrypt(params); BigInteger []ciphertext=elgamal.chiffre(plaintext, y); System.out.println("p= "+params.getP().toString(16)); System.out.println("g= "+params.getG().toString(16)); System.out.println("x= "+x.getX().toString(16)); System.out.println("y= "+y.getY().toString(16)); System.out.println("c1= "+ciphertext[0].toString(16)); System.out.println("c2= "+ciphertext[1].toString(16)); BigInteger clair=elgamal.dechiffre(ciphertext, x); byte[]bc=clair.toByteArray(); String str=new String(bc); System.out.println(str); ElGamalSign sign=new ElGamalSign(params,x,bm); System.out.println("r= "+sign.getR().toString(16)); System.out.println("s= "+sign.getS().toString(16)); ElGamalVerify verif=new ElGamalVerify(params,y,bm,sign.getR(),sign.getS()); if(verif.getVerify())System.out.println("Signature accept閑"); else System.out.println("Signature rejet閑"); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -