elgamalkeypairgenerator.java

来自「这是一个用Java实现ElGamal加密解密和签名验证的算法」· Java 代码 · 共 34 行

JAVA
34
字号
/*
 * ElGamal KeypairGenerator Method
 *
 * @author Ge ZHANG (2937207)
 * @login name: gz847
 * @version 1.00 07/08/11*/

import java.math.BigInteger;
import java.security.*;

public class ElGamalKeyPairGenerator extends KeyPairGeneratorSpi {
  private int mStrength = 0;
  private SecureRandom mSecureRandom = null;
  
  public void initialize(int strength, SecureRandom random) {
    mStrength = strength;
    mSecureRandom = random;
  }
  
  public KeyPair generateKeyPair() {
    if (mSecureRandom == null) {
      mStrength = 1024;
      mSecureRandom = new SecureRandom();
    }
    BigInteger p = new BigInteger(mStrength, 16, mSecureRandom);
    BigInteger g = new BigInteger(mStrength - 1, mSecureRandom);
    BigInteger k = new BigInteger(mStrength - 1, mSecureRandom);
    BigInteger y = g.modPow(k, p);
    
    ElGamalPublicKey publicKey = new ElGamalPublicKey(y, g, p);
    ElGamalPrivateKey privateKey = new ElGamalPrivateKey(k, g, p);
    return new KeyPair(publicKey, privateKey);
  }
}

⌨️ 快捷键说明

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