현재 RSA 또는 ElGamal과 같은 공개 키 암호화 시스템을 사용하는 프로그램을 작성하려고합니다. 나는 다른 소스에서 찾고있다, 내가 입수 한 가장 가까운 RSA에 대한 샘플 코드는 다소 간단 공개 키 암호화의 Bouncy Castle FIPS documentation에 있었다 : 나는 대칭 키 암호와 같은 자주 작업 한RSA 공개 키 생성 및 Java의 암호화 구현
public byte[] pkcs1Encrypt(RSAPublicKey pubKey, byte[] data) {
Cipher c = Cipher.getInstance(“RSA/NONE/PKCS1Padding”, “BCFIPS”);
c.init(Cipher.ENCRYPT_MODE, pubKey);
return c.doFinal(data);
}
AES 및 Triple-DES (DESede)로 사용했지만 Bouncy Castle 설명서를 살펴본 결과 RSAPublicKey
은 SecretKey
클래스의 하위 인터페이스/클래스가 아닙니다.
이 RSAPublicKey
객체를 생성 할 수있는 방법이 있나요, 또는 탄력 성 또는 JCE
감사를 생성 할 수 있습니다! 내가 가진 유일한 질문은'SecureRandom' 객체를 사용하여'publickeydata' 바이트 배열을 생성하는 것입니까? – FaceFTW
'publicKeyData []'는 바이너리 DER'publicKey.getEncoded()'로 인코딩 된 단지 존재하는 공개 키이다. 나는 SecureRandom을 사용하여 새로운 키 쌍을 생성하는 샘플 코드를 포함시켰다. 오라클은 RSA 공개 키와 개인 키와 같이 가치가 높고 수명이 긴 비밀을 생성 할 때 _strong 임의 알고리즘을 사용하도록 권장합니다. JDK8부터는 구현이 가능합니다. https://docs.oracle.com/javase/tutorial/security/apisign/step2.html을 참조하십시오. – pedrofb