¿Hay una solución para: java.lang.RuntimeException: No se pudo generar el par de llaves DH [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Por qué el protocolo de enlace SSL da la excepción 'No se pudo generar el par de llaves DH'? 21 respuestas

Estoy probando una aplicación Java. Estoy intentando iniciar un protocolo de enlace SSL utilizando DH ciphersuite. pero estoy recibiendo el siguiente error:

java.lang.RuntimeException: Could not generate DH keypair

Algunas personas han sugeridoBouncyCastle, pero muchas personas han reportado errores con él, por lo que no me animo a usarlo si hay otra alternativa.

Uno ha sugerido descargarJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files desdehttp://www.oracle.com/technetwork/java/javase/downloads/index.html. Reemplacé los dos archivos siguientesjava.security yjava.policy enC:\Program Files (x86)\Java\jre7\lib\security. Tenga en cuenta que también me di cuenta de que tengoJava\jre7\security instalado en:Program Files (x86) yProgram Files y he sustituido a ambos. Pero, todavía veo el mismo error.

¿Hay alguna solución para este error?

EDITAR: El rastro de la pila:

javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
    at sun.security.ssl.Alerts.getSSLException(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.handleException(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at MyClass.MyClass.myFunction(MyProg.java:78)
    at MyClass.MyClass.main(MyClass.java:233)
Caused by: java.lang.RuntimeException: Could not generate DH keypair
    at sun.security.ssl.DHCrypt.<init>(Unknown Source)
    at sun.security.ssl.ClientHandshaker.serverKeyExchange(Unknown Source)
    at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)
    at sun.security.ssl.Handshaker.processLoop(Unknown Source)
    at sun.security.ssl.Handshaker.process_record(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    ... 4 more
Caused by: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)
    at com.sun.crypto.provider.DHKeyPairGenerator.initialize(DHKeyPairGenerator.java:120)
    at java.security.KeyPairGenerator$Delegate.initialize(Unknown Source)
    ... 11 more

EDIT2: Mi código actúa como un cliente que intenta iniciar el protocolo de enlace SSL con un servidor remoto (sitio web). Configuré la lista de paquetes de cifrado del cliente para:

{
"TLS_ECDHE_RSA_WITH_RC4_128_SHA",
"TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", 
"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
"TLS_ECDHE_RSA_WITH_NULL_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA256",  
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
"SSL_DHE_RSA_WITH_DES_CBC_SHA",
"SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA"
};

Todos los conjuntos de cifrados en la lista del cliente son compatibles con Java. ¿Cómo se puede configurar el cliente Java para que admita iniciar un protocolo de enlace SSL cuando el servidor ofrece claves DH largas?

Respuestas a la pregunta(1)

Su respuesta a la pregunta