Juan The MW escribió:Pues creo que voy a decir una tontería pero bueno  

 . ¿Y si se hiciera un chip para el procesador?  
  ![loco [mad]](/images/smilies/nuevos/miedo.gif)
 . Seguramente inviable, pero bueno. Parece que está complicada la cosa.
Saludos. 
 
Para ver el contenido de los datos desencriptados? No ayudaria mucho.
Imagina que el codigo de la NAND es el siguiente:
cojo_un_numero(x)
cojo_un_numero(y)
hago_operacion(x,y)
muestro_resultado(z)
y encriptado, es
*  K/JNM(JA(=KS(!
* 0BNHMAVSIKIY
B//&AHNSG&((
NMS??=A/"%(1
(* notese que las dos primeras funciones se llaman igual, sin embargo se codifican diferente)
Si colocasemos un/unos chip/s sobre los cells para ver los datos, veriamos (por poner un ejemplo)
4
5
61
61
Sabemos que coje el 4 hace una operacion con el 5 y saca el 61.
Si eres rapido en mates, te daras cuenta que no hay ninguna operacion matematica con estos dos enteros, que de 61. Por lo que no sabemos que operacion ha usado.
Bien, puedes pensar... "en algun momento habra un resultado que si sepa como conseguirlo a partir de 2 enteros....y entonces ya sabre que operacion es..." Bueno, eso es un problemon mas que una solucion. Porque? La culpa la tiene el señor Fermat y Euler.
De todos modos, saberlos interesa mas para temas criptograficos que no para el contenido intrinseco del programa. Porque? Veamos un ejemplo:
(los mas avanzados,reconocereis rapido este sistema)
   1.  Encontrar dos grandes números primos, p y q (secretos), y calcular el número n (publico) mediante su producto, n=p*q.
   2. Encontrar la clave de descifrado constituida por un gran número entero impar, d (secreto), que es primo con el número F(n) (secreto), obtenido mediante F(n)=(p-1)*(q-1). Siendo F(n) la función de Euler.
   3. Calcular el entero e (publico) tal que 1 ó e ó F(n), mediante la formula: e*d-1(mod F(n)).
   4. Hacer publica la clave de cifrado (e,n).
   5. Para cifrar un texto, es necesario previamente codificar el texto en un sistema numérico, bien decimal o bien binario, y dividir en bloques Mi de tamaño j o j-1 de forma que, según sea el alfabeto usado el decimal o el binario cumpla en cada caso: 10^(j-1) < n < 10^j o 2^(j-1) < n < 2^j. Cuando se toma como tamaño j, el descifrado del texto puede no ser único, por tanto esta elección se hace solo cuando la unicidad del descifrado no es importante.
   6. Cifrar cada bloque Mi transformándolo en un nuevo bloque de números Ci de acuerdo con la expresión: Ci-Mi^e(mod n).
   7. Para descifrar el bloque Ci, se usa la clave privada d según la expresión: Mi-Ci^d(mod n). 
Analicemos la base numérica que hace que si M se cifra en C entonces C se descifra en M. Con las claves publica y privada (e,n) y d descritas, dado cualquier mensaje original M representado por un entero entre 0 y n-1 se tiene que, efectivamente, si C-M^e(mod n), entonces C^d-M(mod n).
Si se considera el mensaje descifrado D-C^d(mod n) como C-M^e(mod n), se tiene que D-(M^e+kn)^d(mod n), siendo k algún entero no negativo. Si se desarrolla el binomio, se obtiene que D-M^(e*d)(mod n), pero dado que e*d-1(mod F(n)), se tiene que D-M^[t*(p-1)*(q-1)+1](mod n) para algún entero t no negativo. Como p es primo y p-1-0(mod F(p)), la identidad de Euler-Fermat confirma que M^(p-1)-1(mod p), luego existe algún entero r tal que M^(p-1)=r*p+1 y por tanto M^[t*(p-1)*(q-1)+1]=[(r*p+1)^(t*(q-1))]*M- M(mod p). De la misma forma, se llega a que M^[t*(p-1)*(q-1)+1]-M(mod q). A partir de ambas ecuaciones congruenciales y gracias al corolario de la identidad de Euler-Fermat que afirma que: "Para dos primos distintos cualesquiera p y q y cualquier par de enteros positivos x y u, si x^u-x(mod p) y x^u-x(mod q), entonces x^u-x(mod p*q)", se llega finalmente a la identidad M^[t*(p-1)*(q-1)+1]-M(mod p*q).
Los procesos de cifrado y descifrado pueden ser implementados mediante algunos algoritmos conocidos.
Las dos principales dificultades en la implementación del RSA (facil eh? ;) )  son:
   1. Potencias modulares.
   2. Búsqueda de números primos. 
Para aumentar las dificultades, la seguridad del RSA estriba en que los primos p y q elegidos han de ser muy grandes. Para encontrar los grandes primos p y q se pueden utilizar varios algoritmos, como el de Solovay-Strassen, y el de Lehman y Peralta, que sirven para comprobar la primalidad.
En el caso del RSA puede encontrarse el entero d, primo con F(n)=(p-1)*(q-1), tomando simplemente un número primo mayor que max{p,q}.
Para calcular el entero e tal que e*d*-1(mod F(n)), se puede utiliza el algoritmo euclídeo por ser d primo con F(n).
Por ultimo, las operaciones de cifrado y descifrado requieren el calculo de potencias modulares, lo que se puede llevar a cabo en tiempo polinomial. Exactamente son necesarias 2*(log2 (n)) multiplicaciones modulares, de manera que, por ejemplo, para el calculo de 2^18=(((22) 2) 2) 2 * (22) son necesarias 5 multiplicaciones modulares. 
Y todo esto para que ? (modificando un poco el tercio) Pues para lo que sugerian anteriormente con la ingenieria inversa,cosa que desde YA queda totalmente descartada. Porque??? Sigamos avanzando para verlo..
Para analizar la seguridad del sistema, se supone que el criptoanalista tiene una cantidad ilimitada de pares (M,C) de mensajes originales y sus correspondientes criptogramas. Las posibles maneras que tiene de atacar el sistema son las siguientes:
   1. Factorizar n.
   2. Calcular F(n).
   3. Ataque por iteración.
   4. Ataque de Blakley y Borosh. 
Vamos a analizar estos posibles ataques:
1.- Factorizar n:
De esta forma obtiene el número F(n)=(p-1)*(q-1), y con el la clave privada d, puesto que e es publica y se cumple: e*d-1(mod F(n)).
Al ser n el producto de solo dos números primos, un algoritmo de factorización requiere como máximo 'n pasos, pues uno de los dos factores es necesariamente un primo menor que 'n. Sin embargo, si n fuera el producto de N>2 primos, un algoritmo de factorización necesitaría como máximo n^(1/N) pasos, que es una cota menor que 'n, por lo que se concluye que es adecuada la obtención de n como producto de solo dos números primos.
Con respecto al estudio del problema de la factorización, hay que mencionar al precursor de la moderna factorización, el algoritmo de fracciones continuas de Morrison-Brillhart, ya que es uno de los más rápidos. Sin embargo, los dos algoritmos de factorización que resultan más prácticos para grandes enteros corresponden al de factorización con curvas elípticas de Hendrik Lenstra y al de factorización con filtro cuadrático de Carl Pomerance. Ambos algoritmos convierten el problema de la factorización de un entero n en el problema de encontrar soluciones no triviales ('x <> y(mod n)' y 'x <> -y(mod n)') de la ecuación: x3-y3 (mod n). Si se supone que ni (x+y) ni (x-y) son múltiplos de n enteros, se deduce que el m.c.d.(x+y,n) o bien el m.c.d.(x-y,n) es con seguridad un factor no trivial de n, por lo que se resuelve el problema de la factorización.
Por ejemplo, si n=97343, entonces la ecuación x2-y2 (mod 97343) es fácilmente resoluble por ser los factores de n dos números primos muy cercanos. Como 3122-1(mod 97343) y ni 313 ni 311 son múltiplos de 97343, se concluye que 313 y 311 son los factores de n.
2.- Calcular F(n):
Como se ve a continuación, esta manera es equivalente a la anterior. Si se tiene F(n), dado que p+q=n-F(n)+1 y a partir de la suma se puede calcular (p-q) 2 por coincidir con (p-q) 2-4*n, luego se consigue la factorización mediante las formulas q=[(p+q)-(p-q)]/2 y p=[(p+q)+(p-q)]/2.
3.- Ataque por iteración:
Si un enemigo conoce (n,e,C), entonces puede generar la secuencia: C1-C^e(mod n), ..., Ci-[C(i-1)]^e(mod n), con lo que si existe algún Cj tal que C=Cj se deduce que el mensaje buscado es M=C(j-1) pues [C(j-1)]^e=Cj=C. Ahora bien, en cuanto la igualdad Cj=C se cumple solo para un valor de j demasiado grande, este ataque se vuelve impracticable. Con respecto a esto, Rivest demostró que si los enteros p-1 y q-1 contienen factores primos grandes, la probabilidad de éxito mediante este procedimiento es casi nula para grandes valores de n.
4.- Ataque de Blakley y Borosh:
El sistema RSA, además, tiene una característica muy peculiar, advertida por Blakley y Borosh, y es que no siempre esconde el mensaje. A continuación vemos un ejemplo que lo muestra.
Si e=17, n=35 y los mensajes a cifrar son M1=6 y M2=7, entonces se obtiene que 6^17-6(mod 35) y 7^17-7(mod 35). Una situación más peligrosa para el sistema aparece, por ejemplo, con los valores p=97 q=109 y e=865, ya que el criptosistema resultante no esconde ningún mensaje, pues M^865-M(mod 97*109)
En general, lo ocurrido en el ultimo ejemplo ocurre siempre que e-1 es múltiplo de p-1 y q-1, pues en ese caso M^e-M(mod p*q). Además, se tiene que para cualquier elección de n=p*q siempre existen al menos 9 mensajes M que no se cifran en realidad, ya que verifican la ecuación M^e-M(mod n). De esos 9 mensajes hay tres fijos, que son M perteneciente a {0,1,-1}. Para hacer que el sistema RSA sea resistente contra ataques basados en este hecho, es conveniente elegir como claves privadas números primos de la forma p=2*p'+1, donde p' es un primo impar. 
Para la selección de los parámetros del sistema el usuario debe comprobar las siguientes condiciones para intentar evitar los ataques mencionados:
    * Los números primos p y q deben tener una diferencia grande (ataque 1).
    * Los números primos p y q deben ser del orden de 100 dígitos (ataque 2).
    * Los enteros (p-1) y (q-1) deben contener grandes factores primos (ataque 3).
    * Los números primos p y q deben elegirse de manera que p=2*p'+1 y q=2*q'+1 con p' y q' números primos impares (ataque 4). 
Los primos p y q del RSA deben ser de la forma x=2*x'+1 (siendo x' un número primo impar) tal que x-1 tiene grandes factores primos, con aproximadamente 100 dígitos y de forma que p-q sea grandes.
No obstante, es lógico pensar que a medida que se profundiza en la investigación se añadirán y descubrirán nuevas propiedades de los parámetros que deban verificar para que el sistema resultante se fortalezca.
Uno de los más recientes ataques al RSA fue realizado por Wiener. Llevo a cabo un criptoanalisis en tiempo polinomial de un sistema RSA con claves privadas pequeñas. Para ello, utilizo un algoritmo que representa los números racionales como fracciones continuas finitas.
De todo lo anterior se concluye que para que la seguridad del sistema RSA quede perfectamente salvaguardada es necesario escoger cuidadosamente las claves a utilizar.
Finalmente se presentan algunos resultados que versan sobre la seguridad del sistema.
Un algoritmo que calcule d se puede convertir en un algoritmo probabilístico que factorice n.
Si el RSA se aplica en un entorno en el que el modulo n y los exponentes de cifrado y descifrado d son distribuidos por una agencia de manera que esta proporciona un modulo n común a todos los usuarios, los exponentes de cifrado de cada usuario eA, eB, ... y distribuye entre los usuarios las claves privadas dA, dB, ..., pero en todo caso mantiene para si los números p y q, entonces cualquier usuario puede determinar en tiempo cuadrático determinístico la clave de descifrado secreta de otro usuario.
Si dos usuarios usan el mismo modulo en un sistema RSA y lo saben, entonces cada usuario puede descifrar los criptogramas enviados al otro.
Luego queda claro que esas condiciones no resultan muy propicias para la seguridad de las comunicaciones.
A pesar de las ventajas evidentes de este esquema frente a los sistemas de clave secreta, hay que subrayar que en la actualidad la principal desventaja del RSA estriba en que es mucho más lento que el DES y que los cifrados en flujo. Como cifras ilustrativas, se puede señalar que el DES trabaja a unos 20 megabits por segundo, mientras que el RSA funciona a una velocidad 1000 veces menor, y aunque la investigación para acelerar el proceso es intensa, es de esperar que esta proporción se mantenga, ya que también se realiza para los cifrados simétricos.
El punto más débil del RSA es su velocidad (comparándola con la de otros cifrados, como el cifrado en flujo). 
******************************************************
*Y todo esto a donde nos lleva ????  A LA PUÑETERA FIRMA DIGITAL 

*
******************************************************
El desarrollo de las telecomunicaciones en estos últimos años ha creado toda una variedad de nuevas necesidades. Por ejemplo, dado que en la mayoría de las operaciones bancarias es necesario firmar los documentos, con el uso de los ordenadores se requiere un nuevo planteamiento, donde una firma digital sustituye a la firma manual y cumple las mismas propiedades que ésta. Se puede distinguir la firma:
    * implícita (contenida dentro del texto) de la explícita (añadida al texto como una marca inseparable).
    * privada (legible sólo para quien comparte cierto secreto con el emisor) de la pública (legible para todo el mundo). 
La firma digital debe ser:
    * única, pudiéndola generar solamente el usuario legítimo.
    * no falsificable, el intento de falsificación debe llevar asociada la resolución de un problema numérico intratable.
    * fácil de autenticar, pudiendo cualquier receptor establecer su autentidad aún después de mucho tiempo.
    * irrevocable, el autor de una firma no puede negar su autoría.
    * barata y fácil de generar. 
Otra característica que han de tener las firmas digitales es que deben depender tanto del mensaje como del autor. Esto debe ser así porque en otro caso el receptor podría modificar el mensaje y mantener la firma, produciéndose así un fraude (en el ejemplo de la biblioteca, el libro en arabe que esta en un dialecto, lo modificabamos en ese dialecto yluego resulta que no es factible, ya que no hemos usado el lenguaje original)
Si el emisor A envía un mensaje firmado digitalmente al receptor B, este último no sólo debe convencerse de que el mensaje fue firmado por el primero, sino que, además, debe ser capaz de demostrar a un juez que A realmente firmó ese mensaje. Esta noción fue ideada por Diffie y Hellman en 1976. La firma digital y el correo electrónico ofrecen conjuntamente sustanciosas ventajas, una de ellas es hacer posible el correo certificado y la firma electrónica de contratos.
La idea principal de la firma digital es que solamente el emisor la pueda producir y además se pueda demostrar que, efectivamente, es él quien la produce. Representa por tanto, un control más fuerte que la autenticación.
Considérese un sistema de clave pública donde Mk y Ck denotan respectivamente, a los espacios de mensajes originales y cifrados asociados a una clave k.
Un sistema de clave pública ofrece la posibilidad de ser usado para firmas digitales siempre que para k perteneciente a K; Mk=Ck y para m perteneciente a M; Ek(Dk(m))=m.
Denotando la clave escogida por el usuario A como a, se tiene que si el criptosistema es seguro, entonces sólo A puede calcular Da, pero cualquiera puede calcular Ea de forma eficiente.
Considérese un mensaje m perteneciente a Ma y s=Da(m). Cualquier usuario puede calcular Ea(s) y comprobar que coincide con m, pero, sin embargo, sólo A puede deducir el valor de s para el que Ea(s)=m. En este sentido, s puede ser considerado como la firma de A para el mensaje m. Si B muestra el mensaje s y su cifrado Ea(s) a un juez, éste debe de convencerse de que ningún otro m s que A pudo haber firmado ese documento con Ea(s). En otras palabras, los algoritmos de descifrado y de cifrado pueden verse, respectivamente, como un algoritmo de firma digital y su correspondiente algoritmo de verificación.
La actual velocidad de los sistemas de clave pública recomienda su utilización para generar firmas digitales cortas y separadas del texto (firmas explícitas).
Si además de capacidad de firma digital se desea secreto, entonces la firma digital puede ser utilizada conjuntamente con un cifrado de clave pública. Si el usuario A quiere enviar un mensaje secreto firmado a un usuario B, puede usar el algoritmo secreto de firma digital Da y el algoritmo público de verificación Eb, produciendo c=Eb(Da(m)). Si envía este mensaje c al usuario B a través de un canal inseguro, entonces B puede calcular la firma de A mediante s=Db(c) y de ahí recuperar el mensaje claro m=Ea(s). Esto supone que en el caso de que hubiera más de un posible emisor en el encabezado del mensaje debe decir claramente que el mensaje viene de A para que B pueda saber qué algoritmo de verificación debe aplicar. Es más, si B guarda el mensaje s, llegado el momento podrá probar ante un juez que A le envió el mensaje m, tal y como se explicó previamente.
Hay que tener cuidado cuando se afirma que el conocimiento por parte de B del valor de una firma s tal que Ea(s)=m tiene que ser considerada como una demostración de que A firmó m, ya que B podría elegir un valor s aleatorio, calcular m=Ea(s) y luego argumentar que A envió m, aunque no tenga sentido. Las cosas empeoran si la proporción de mensajes con significado es alta, porque en este caso B podría escoger varios valores de s aleatoriamente hasta toparse con uno para el que Ea(s) tenga significado. Por esta razón, es recomendable alguna forma normalizada para las firmas digitales, y que se acepte s como firma del mensaje m sólo si se tiene que m=Ea(s) y que m está en forma normalizada. Desafortunadamente, todavía no está claro cual sería la forma normalizada recomendable para utilizar con el sistema RSA.
Si se utiliza el RSA para conseguir secreto y como firma digital, entonces es preferible que cada ususario use claves distintas para cada uno de los dos propósitos. De esta forma, cada usuario tendría asignada una clave en el directorio público de claves de cifrado y otra distinta en el directorio público de firma digitales. Esta separación es útil para dos propósitos. En primer lugar, ayuda a evitar el problema que surge cuando el módulo del emisor es mayor que el del receptor. En segundo lugar dado que el RSA es débil frente a algunos ataques con texto escogido, tales ataques pueden verse facilitados si se utiliza la misma clave para ambos fines, y en consecuencia es preferible evitarlo.
El criptosistema RSA presenta algunos inconvenientes para las firmas digitales parecidos a los que presentaba como sistema de cifrado. En particular, no se sabe a ciencia cierta si es tan difícil de romper como la factorización de grandes enteros. Incluso aunque así fuera, dados un mensaje original escogido m y la clave de cifrado de otro usuario (e,n), calcular la firma digital s tal que m - s^e(mod n) puede ser mucho más fácil si se tiene, además, (s',m'), donde s' es la firma digital del usuario legítimo para un mensaje m' muy parecido al mensaje m. En otras palabras, podría resultar fácil falsificar firmas digitales para algún mensaje dado después de haber visto las firmas digitales auténticas de varios mensaje parecidos.
******************************************************
Pues bien el RSA para la PS3 es como un puzzle de dificultad para
un niño de 4 años
******************************************************
Es decir, que se lo pule,por lo tanto, nos estamos enfrentando a una encriptacion QUE ES (y aqui me quedo sin palabras porque decir que es "relamente jodida"  me estaria quedando muy muy corto)
PD: yo prefiero explicarlo a lo "cutre" con mis ejemplillos, porque sino,para entender esto.. hay que tener una carrera,hecha y derecha en mates,telecos o informatica.
(editado) corrigiendo y añadiendo algunas modificaciones