Si debo creer en la documentación (una noción audaz) , la función openssl_private_decrypt()
realiza descifrado simétrico con RSA, utilizando OpenSSL (la biblioteca) para el trabajo criptográfico real. En su VPS, puede ejecutar el siguiente comando para evaluar OpenSSL:
openssl speed rsa
Esto le dará la velocidad de las operaciones de claves públicas y privadas de RSA en su máquina. En el mío, obtengo 833.7 operaciones de clave privada por segundo para una clave de 2048 bits; 15 llamadas sucesivas apenas serían perceptibles. Sin embargo, su VPS podría ser
considerablemente más débil que mi 3.1 GHz E3 Xeon. Además, es posible que haya utilizado una clave privada de gran tamaño (el tiempo de cálculo es mayormente cúbico en el tamaño de la clave). Si el punto de referencia muestra que la velocidad de descifrado RSA es el problema, entonces puede hacer lo siguiente:
-
Usa una tecla más pequeña. El tamaño normal de la clave RSA es de 2048 bits; no hay necesidad de ir más allá de eso (2048 bits son suficientes para la seguridad de, al menos, los 30 próximos años). Ya no se recomiendan 1024 bits, aunque esto todavía no se puede romper (se puede hacer con la tecnología existente, pero supondrá la construcción de una máquina dedicada bastante costosa). Si tiene poca energía de la CPU, es posible que desee probar un término medio, por ejemplo. una clave de 1536 bits. NO ir por debajo de 1024 bits.
-
Agrega una CPU más grande. RAM no es relevante. Tener más CPU ayuda solo para el procesamiento paralelo, es decir, varios usuarios que acceden al servidor simultáneamente.
-
Haz otra cosa. No describe el contexto de uso, pero lo más probable es que si necesita realizar un descifrado de 15 RSA en una sola página, entonces está haciendo algo mal. Por ejemplo, supongo que puede haber notado que el cifrado RSA funciona solo hasta un tamaño limitado (117 bytes para una clave RSA de 1024 bits), y que podría haber decidido cifrar un mensaje más largo dividiéndolo en bloques largos de 117 bytes y aplicando RSA en cada uno de ellos por separado. Este camino lleva al sufrimiento. No hagas eso Haz cifrado híbrido (pero si tengo que decirte eso, entonces no sabes lo suficiente para hacer algo seguro todavía) .
(Cada vez que veo lo que hace PHP con crypto, me llena de temor, repugnancia y una sensación de inminente muerte. Las personas que pueden diseñar una función llamada openssl_public_decrypt()
para "descifrar datos con la clave pública" son personas que aparentemente escuchó antes de 1993, pero no se molestó en verificar si la ciencia había progresado de alguna manera en los últimos 20 años. ¿Está seguro de que desea usar esas herramientas para cualquier cosa que requiera seguridad real?)