Увеличьте свой ключ :) В соответствии с вашими цифрами вы вдвое сокращаете время, удваивая размер ключа. Я уверен, что это ошибка.
Первое, что нужно сделать, это переключиться на OpenSSL, который является расширением в C. Если вы используете правильную сборку, операции с открытым ключом выполняются в сборке, так что это намного, намного быстрее, чем код PHP. По моему опыту, это как минимум в 10 раз быстрее.
Второе, что нужно сделать, - это использовать стандартный конверт, такой как PKCS # 7 (OpenSSL поддерживает это). Он будет использовать симметричный ключ для шифрования и шифрования ключа с использованием открытого ключа. Он имеет много накладных расходов для небольших сообщений, но в долгосрочной перспективе вы выиграете.