En primer lugar, 256 bits son 32 bytes , que tienen menos de 117 bytes, por lo que se ajusta y no hay necesidad de ningún tipo de división.
Se podría argumentar que es inútil tener una clave de 256 bits para el cifrado simétrico si está protegida con una clave RSA de 1024 bits, porque, debido a su estructura matemática (la estructura que permite la clave pública / privada magia), la clave RSA es de una resistencia mucho menor contra los ataques, hasta la fuerza relativamente baja de "aproximadamente" 80 bits (que todavía está fuera del alcance de lo que se puede hacer ahora, pero al menos una máquina que rompe 1024 bits La clave RSA puede ser diseñada y calcular su precio, a diferencia de una búsqueda de fuerza bruta en un espacio de clave simétrica de 256 bits, que está muy por encima de la ciencia e incluso de la ciencia ficción).
El tipo de división que está solicitando no sería trivial de hacer de manera segura. Esto requeriría un análisis cuidadoso. A mi entender, todavía no se ha realizado un análisis de este tipo porque no hay una situación práctica que lo exija.
Pero, lo más importante, no debes reinventar la rueda . Establecer una comunicación segura entre un cliente y un servidor, con un intercambio de claves y luego un cifrado simétrico, es muy complicado para hacerlo correctamente. Existe una solución estándar llamada SSL (bueno, ahora se llama TLS, pero es lo mismo). Este protocolo se ha roto, reparado, analizado y optimizado durante casi dos décadas, y ahora parece bastante seguro. Es muy dudoso que usted (o, para el caso, cualquier ser humano) pueda producir algo tan bueno (o al menos "no peor") por usted mismo, en mucho menos tiempo. Hay miles de millones de detalles de diseño e implementación que pueden salir mal. Así que haz lo inteligente, usa SSL; aún más inteligente, use una implementación existente de SSL en lugar de escribir la suya. Te ahorrará muchas preocupaciones, tiempo y dinero.