En el pico de rendimiento máximo teórico en un 3 GHz CPU (x86), que tendría un presupuesto de poco menos de 4 instrucciones de la CPU por byte al azar, si estuviera tratando de golpear 200 MB/s . El rendimiento en el mundo real será considerablemente menor que esto. Posicionaría que esto será extremadamente difícil en cualquier idioma. Estás muy metido en el tipo de velocidades que suelen emplear un acelerador de hardware dedicado (es decir, estás intentando hacer 1.56 Gbit por segundo). En aplicaciones de red o video, hay una cantidad considerable de hardware externo dedicado a permitir este tipo de rendimiento. Una implementación extremadamente eficiente en C o en el ensamblaje podría permitirle alcanzar esta restricción, pero en realidad está llegando al límite de lo que es posible solo con hardware de uso general.
Consideraría pregenerar los datos (como ya se ha sugerido) o emplear algún tipo de criptoacelerador de hardware para alcanzar cualquier cosa que se parezca a este tipo de rendimiento. Encontré esto list of crypto accelerator hardware vendors.
Como reflexión final, de hecho significó 200 mega bytes por segundo, ¿verdad? Si se refería a mega bits, entonces este problema es mucho más fácil de resolver.
¿Puedo preguntar por qué necesita tantos datos aleatorios que se generan sobre la marcha (como por qué no puede pregenerarlo y luego transmitirlo)? – ircmaxell