Register

Welcome to the RDI-Board Community.

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed.

Donate Now Goal amount for this month: 100 EUR, Received: 100 EUR (100%)
Donate to support this site...

Page 1 of 6 123 ... LastLast
Results 1 to 15 of 76

Thread: Algoritmos

  1. #1
    Member Mentor
    RDI - Board Default Avatar

    Join Date
    Jun 2006
    Posts
    830
    Posts Thanks / Likes

    Default Algoritmos


    Con permiso de la autoridad competente, me he tomado la libertad de abrir
    este hilo para fomentar el estudio y difusión de algoritmos de encriptación.

    Tanto de los que ya están siendo utilizados, como los nuevos que puedan
    ser incorporados en el futuro... especialmente en N2/N3.

    Se agradecería la intervención de todos aquellos que están interesados y
    también de los que consideren que tienen algo que aportar...

    Saludos

  2. #2
    Member Mentor
    RDI - Board Default Avatar

    Join Date
    May 2007
    Posts
    675
    Posts Thanks / Likes

    Default

    Jareno, cualquier iniciativa es bien recibida.

    Y vamo a vel lo que podemo asel.

    Saludos
    Antena mirando pa´chispa
    Dreambox 500s del pais de Mao
    Tompsom con blanquita y pagando tos los meses

    El saber no ocupa lugar, pero ocupa mucho tiempo.

    Y librame Diós de mis amigos, que de mis enemigos ya me libraré yo.

  3. #3
    Senior Member Expert
    RDI - Board Default Avatar

    Join Date
    May 2007
    Location
    ESTEC - ESA
    Posts
    1,293
    Posts Thanks / Likes

    Default

    buena idea Jareno2000



  4. #4
    JOSDEP*TA TODOS Expert
    Join Date
    Nov 2006
    Posts
    1,058
    Posts Thanks / Likes

    Default

    Una buena idea, Jareno2000... ME ENCANTA todo lo que sea dejarse la vista y las meninges en comprender o descifrar esas putaditas algebraicas que inventan algunos indeseables... (y no me refiero al rumor de que las flores nuevas ya no llevan la F, que he leido por ahí)

    Intentaré colaborar en lo posible, y ahora más que viene la época de vacaciones.

    Saludos.


  5. #5
    Member Mentor
    RDI - Board Default Avatar

    Join Date
    Jun 2006
    Posts
    830
    Posts Thanks / Likes

    Default ¿Comenzamos?

    Bueno, visto que estamos a punto de liquidar el negocio N2, y para aprovechar de forma productiva este periodo de "descanso" que se nos avecina, sugiero comenzar con un algoritmo utilizado en N2 y que podria ser probable que lo conservasen para N3 (?).

    Dicho algoritmo es IDEA.

    Los pasos previos que propongo:

    1. Subir a un upload un programa de mi cosecha, que os sirva para probar y familiarizaros con la "parte externa" de IDEA.

    2. Una vez que hayais probado el programa y comprobado sus calculos (o al menos intentado), ya tendremos suficientes problemas para empezar a lanzar preguntas y las correspondientes discusiones sobre los calculos internos.

    3. Cuando estemos suficientemente seguros de que entendemos el algoritmo, propongo subir al upload el "fuente" del programa para que veais como se han resuelto. Y aquel que se sienta con fuerza, se anime a escribir su propio programa o modificaciones a algunas de las funciones o procedimientos.

    Espero vuestras sugerencias, para comenzar lo mas pronto posible.

    Saludos.

  6. #6
    Member Mentor
    RDI - Board Default Avatar

    Join Date
    Jun 2006
    Posts
    830
    Posts Thanks / Likes

    Default Programa IDEA_Didactico

    Hola

    Para ir ganando tiempo, he subido el programa: www.megaupload.com/?d=2022D3JV

    Vereis que es facilisimo de usar.

    El programa cifra/descifra:

    ---> Un mensaje (longitud 8 Bytes)
    ---> Con una clave (longitud 16 bytes)

    Las razones de estas longitudes ya las supondreis.
    No obstante, se iran explicando a lo largo de nuestras conversaciones ...

    Ir probando, observar los datos producidos (rondas y subclaves) y empezar a disparar preguntas, con toda libertad y sin inhibiciones.

    Se trata de establecer un dialogo lo mas fluido posible, de forma que yo pueda averiguar cuales son vuestras dificultades.

    Bueno, y ademas, sentir que "hay alguien al otro lado", jejeje

    Saludos.


    PD. Estoy confeccionando una especie de "texto divulgativo" que nos sirva como guion.

  7. #7
    Senior Member Expert
    Join Date
    Jan 2005
    Posts
    1,781
    Posts Thanks / Likes

    Default

    Quote Originally Posted by jareno2000 View Post

    Con permiso de la autoridad competente, me he tomado la libertad de abrir
    este hilo para fomentar el estudio y difusión de algoritmos de encriptación.

    Tanto de los que ya están siendo utilizados, como los nuevos que puedan
    ser incorporados en el futuro... especialmente en N2/N3.

    Se agradecería la intervención de todos aquellos que están interesados y
    también de los que consideren que tienen algo que aportar...

    Saludos

    Muy buena idea Sr. Jareno. Vamos a ver si hay suerte y este hilo que has creado, va bien y se deja controlar. En hora buena.

    P.D. Cuando digáis quito este post ya que no corresponde.



    Antes de postear en este foro, lea las normas y preséntese. Y al presentarse respete las normas Nº 1. Gracias

    NORMAS: http://www.rdi-board.com/showthread.php?t=59064

  8. #8
    Junior Member Junior
    RDI - Board Default Avatar

    Join Date
    Dec 2007
    Posts
    2
    Posts Thanks / Likes

    Default

    Buenas.He bajado tu programa y lo primero que se me ocurre preguntar es..en las rondas:.
    que es eso de P14=X01 x IK49,es decir, lode X01 lo pillo, el "x" tb xDD, pero xk hacer esa multiplicacion? Lo de multiplicar esos dos terminos en hexadecimal tb lo pillo y tal, pero no entiendo xk hace esas multiplicaciones y sumas.Supongo que forman parte del algoritmo,pero no se porque

    Otra duda que tengo es que porque son 9 rondas y porque en la primera se hacen menos operaciones que en el resto.

    Y otra duda asi que me viene..es qué operaciones hace y xk , para obtener el resultado final a traves de los parciales.

    Saludos y gracias de antemano.

  9. #9
    Junior Member Friend
    RDI - Board Default Avatar

    Join Date
    Dec 2007
    Posts
    25
    Posts Thanks / Likes

    Default

    Como es mi primer post aprovecho para saludar a algunos os llevo leyendo desde hace algun tiempo.

    x Jareno

    He bajado el programa y felicitarte por el trabajo, he metido una serie de "vectores de test" del estilo:

    Mensaje a cifrar: FFFF00000000FFFF
    Clave: FFFF0000FFFF0000FFFF0000FFFF0000
    Mensaje Cifrado: 1E8CA060AE4D20E6

    A la hora de descifrar el mensaje (misma clave y poniendo como mensaje a descifrar: 1E8CA060AE4D20E6), se produce el siguiente error:

    ERR Funcion DecToHex
    Maximo admitido: 65536
    El programa se aborta

    Un saludo

  10. #10
    Member Mentor
    RDI - Board Default Avatar

    Join Date
    Jun 2006
    Posts
    830
    Posts Thanks / Likes

    Default

    He recibido este post via mensaje privado.

    Quote Originally Posted by "anonimo...
    Estimado jareno, he bajado tu programa idea didactico, pero sinceramente no se como utilizarlo o que puedo hacer con el.

    Supongo que por mis escritos, te habras dado cuenta de que mis conocimientos .
    bla... bla... bla...

    Y repito, con un poco de ayuda, si que creo que puedo hacer cosas.
    Esto entre nosotros eh, jajaja.

    Un cordial saludo
    Estimado "Anónimo", respeto y entiendo tu deseo de mantenerte en el anonimato. De ahi que modifique tu nick real, y elimine algunos datos que aportas, y que pudieran facilitar tu identificacion.

    Sin embargo, yo recomendaria a los que sigan este (llamemosle) "Curso rápido de IDEA", que planteen sus dudas abiertamente y sin complejos.

    Creo que no hay motivos para avergonzarse.
    Si supierais como funciona IDEA, no estariais leyendo este hilo.
    Y si no haceis preguntais, nunca obtendreis respuestas...
    Asi que adelante, y sin complejos... lanzar todas las preguntas que os surjan


    Creo que es conveniente establecer una comunicacion en ambas direcciones, de forma que ambos aprendamos.
    Vosotros acerca del algoritmo IDEA, y yo acerca de vuestras dudas y repetir o rectificar mis explicaciones, que probablemente hayan sido insuficientementes o erroneas.

    -------------------

    Y ahora, sobre tu pregunta: ¿Qué puedo hacer con ese programa?

    Respuesta: Utilizando una clave de 16 bytes puedes hacer dos cosas:

    Cifrar un "mensaje en claro" de 8 bytes de longitud,
    o bien
    Descifrar un "mensaje cifrado con IDEA " de 8 bytes de longitud.


    Si tienes mensaje mas largos, siempre los podras dividir en bloques de 8 bytes y pasarlos uno a uno por el programa.

    Saludos.


    PD. Estoy preparando una, a modo de, Introduccion al Algoritmo IDEA, que nos permita comenzar y entrar en detalles.

  11. #11
    Member Mentor
    RDI - Board Default Avatar

    Join Date
    Jun 2006
    Posts
    830
    Posts Thanks / Likes

    Default

    Quote Originally Posted by nisat View Post
    Buenas.He bajado tu programa y lo primero que se me ocurre preguntar es..en las rondas:.
    que es eso de P14=X01 x IK49,es decir, lode X01 lo pillo, el "x" tb xDD, pero xk hacer esa multiplicacion? Lo de multiplicar esos dos terminos en hexadecimal tb lo pillo y tal, pero no entiendo xk hace esas multiplicaciones y sumas.Supongo que forman parte del algoritmo,pero no se porque

    Otra duda que tengo es que porque son 9 rondas y porque en la primera se hacen menos operaciones que en el resto.
    Y otra duda asi que me viene..es qué operaciones hace y xk , para obtener el resultado final a traves de los parciales.

    Saludos y gracias de antemano.
    Aunque te has adelantado tres pueblos (de lo cual me alegro), intento responder.

    Efectivamente, esas operaciones forman parte del algoritmo.

    IDEA, como todos los algoritmos simetricos de cifrado por bloques, está basado en los conceptos de confusion, difusion y ofuscacion,.por medio de tres operaciones faciles de programar (Suma modular, multiplicacion modular, y XOR)

    Asi que el "por qué", o mejor dicho el "para qué" los inventores de IDEA incluyeron esas operaciones es muy sencillo de contestar: Para que el atacante tenga muchas dificultades en descifrar el mensaje. Y lo que es mas importante, para ponerle muuuuchas mas dificultades para averiguar LA CLAVE.

    La mezcla de sus tres operaciones elementales en 8 rondas de 14 pasos, producen el efecto mencionado de confusion, difusion y ofuscacion que hacen de IDEA un algoritmo bastante seguro, que hasta ahora se ha mostrado resistente a multitud de ataques, entre ellos el criptoanálisis diferencial. Presenta pocas claves débiles (que deberan ser evitadas), y su longitud de clave hace imposible en la práctica un ataque por la fuerza bruta.

    No se olvide que IDEA es un algoritmo patentado y de dominio publico, y por tanto con posibilidad de ser implementado en un programa de ordenador, siempre que no se persigan objetivos de lucro. Asi que la complejidad del algoritmo, no es un impedimento "en si misma" para el descifrado del mensaje.

    El resto de las preguntas, se iran contestando "ellas solitas", a medida que avancemos en el aprendizaje.

    Saludos.

  12. #12
    Member Mentor
    RDI - Board Default Avatar

    Join Date
    Jun 2006
    Posts
    830
    Posts Thanks / Likes

    Default

    Quote Originally Posted by corras
    Como es mi primer post aprovecho para saludar a algunos os llevo leyendo desde hace algun tiempo.

    x Jareno

    He bajado el programa y felicitarte por el trabajo, he metido una serie de "vectores de test" del estilo:

    Mensaje a cifrar: FFFF00000000FFFF
    Clave: FFFF0000FFFF0000FFFF0000FFFF0000
    Mensaje Cifrado: 1E8CA060AE4D20E6

    A la hora de descifrar el mensaje (misma clave y poniendo como mensaje a descifrar: 1E8CA060AE4D20E6), se produce el siguiente error:

    ERR Funcion DecToHex
    Maximo admitido: 65536
    El programa se aborta

    Un saludo

    Es evidente, (a tus prueba me remito) que el mencionado programa no está exhaustivamente depurado.
    Mea culpa, jejeje

    Tratare de corregirlo, y volvere a colgarlo del mismo upload, en cuanto esté listo...
    Mientras tanto, supongo que podreis continuar probandolo (yo utilizo sus mismas (?) funciones para certificar EMMs, y hasta ahora no me habia sucedido, jejejeje)

    Saludos.

  13. #13
    Junior Member Junior
    RDI - Board Default Avatar

    Join Date
    Nov 2007
    Posts
    3
    Posts Thanks / Likes

    Default

    De primeras gracias por el foro y felicidades por ser el mejor.

    la idea del primer post es la que todos esperamos lo unico (con perdon no es por putear) las primeras respuestas no aportan nada (perdon) solo felicitan la iniciativa que todos esperamos.
    Yo opino que no es verdad lo de las flores sin F lo que si creo que en nagra1 eran 8 digitos en nagra2 16 digitos y en "supuestamente nagra3" seran mas largas no creo que tanto como el doble pero poco faltara.
    No olvideis que es mi opinion y no tengo experiencia suficiente como para afirmar pero segun gente experta de este mismo foro que yo me fio lo unico que cambia es la "verifi keys" y la "3des" ya que la rsa esta en el deco y no los han cambiado. Corregirme si me equivoco. A parte claro esta + el recivimiento de las emms + largas = keys + largas.
    Los expertos dicen que es nagra2 mejorada y tendran la solucion antes que lo que tardaron en el cambio de n2, al ser el mismo sistema pero "tuneado".
    Creo que antes de la blanka moscqueada saldra publicamente la pitufa aunque solo sea 1o2 meses antes de cambiarla tambien (dicen que por blankanieves pero creo que sera seca en vez de solo la blanky)
    Recordar que es mi opinion y espero que no lo tomeis como noticia ya que no puedo comfirmar nada.

    P.D:
    no biene a cuento pero que programador de cards me recomendais para la blanky tenia pensado el apolo5 para tambien usar es los naranjos(kktel).
    saludos y aver si tarda poco esta noche eterna.

  14. #14
    Junior Member Friend
    RDI - Board Default Avatar

    Join Date
    Dec 2007
    Posts
    25
    Posts Thanks / Likes

    Default

    Buenos Dias, pues que me he levantado con energia a ver si seguimos entendiendo esto del IDEA. Si nos centramos en las operaciones que realiza:

    1) Multiplicacion

    M1
    |
    X--> M1*K1
    |
    K1

    Si esto lo hacemos para cifrar, al descifrar interesa volver a tener M1 (mensaje) para ello necesitamos encontrar el inverso multiplicativo de K1 (Clave), es decir, 1/K1 para obtener:

    (M1*K1)
    |
    X--> (M1*K1)/K1 = M1
    |
    1/K1

    Que la multiplicacion sea en modulo 2^16+1, es precisamente porque es un numero primo y todos los elementos tendran inverso multiplicativo!

    2) Suma
    Para cifrar,

    M2
    |
    +--> M2+K2
    |
    K2

    Para descifrar, buscamos el inverso aditivo de K2, (-K2)

    M2+K2
    |
    +--> M2+K2-K2 = M2
    |
    -K2

    Pero la suma se realiza en modulo 2^16, entonces para que "cuadre" el invento entre una operacion suma y otra de multiplicacion se realiza el siguiete "truco":

    1) Cualquier operando de una multiplicacion = 0 se cambia por el valor 2^16
    2) El resultado de una multiplicacion igual a 0x10000 (2^16) se cambia por el valor 0x0000 esto si trabajamos con registros de 16 bits es facil de implementar ya que 0x10000 tiene 17 bits, asi que todo encaja como hecho a medida.

    Teniendo en cuenta lo dicho sobre la operacion suma y la operacion producto, si nos fijamos en el esquema del algorimo IDEA vemos como las 4 primeras operaciones y las ultimas 4 (la transformacion final) solo sirven para que con el mismo algoritmo podamos cifrar y descifrar, asi no hay que usar algoritmos diferentes para cifrado y descifrado.

    Lo que realmente cifra el mensaje son las operaciones del bloque central.

    En cuanto al numero de vueltas del algoritmo, diria que "no importa" puesto que los xor se "deshacen" en cada vuelta, es decir

    Y1 ---- \
    |#####|
    xor--->xor-->Y2 (los # son relleno, no significan nada)
    |
    Y2

    Y ademas las claves K5 y K6 son iguales para cifrar que para descifrar. Mayor numero de vueltas = mayor confusion. lo mismo para la rotacion de la clave, no es necesaria pero se realiza para putear mas.

    Espero no estar muy equivocado,
    Saludos.

    PD. Siento los graficos cutres.

  15. #15
    Junior Member Friend
    RDI - Board Default Avatar

    Join Date
    Dec 2007
    Posts
    25
    Posts Thanks / Likes

    Default

    Pongo aki un meteodo para calcular el inverso multiplicativo, necesario a la hora de generar las subclaves
    de descifrado:
    Aplicando Euler: Como el modulo es 65537 (primo) sabemos q:
    1. phi(65537) = 65537-1 = 65536;
    2. Se sabe que A^[phi(N)] = 1 mod (N)
    3. hacemos mates ==> multilpicamos y dividimos por A, es decir: A/A ==> A*A^-1

    Entonces queda: A*A^[phi(N)-1]= 1 mod N (1)

    de la definicion de inverso multiplicativo: A*A^-1=1 (2)

    Si identificamos terminos en (1) y (2) vemos que A^-1 = A^[phi(N)-1]
    Es decir, A ==> Numero que queremos invertir elevado a (65536-1) sera el inverso
    Solo hace falta aplicar un metodo de exponenciacion rapida, pasamos 65535 a binario:
    65335 = 1111 1111 1111 1111b
    A^[65535] ===>
    ((((((((((((((((A^2)*A)^2)*A)^2*A)^2*A)^2*A)^2*A)^ 2*A)^2*A)^2*A)^2*A)^2*A)^2*A)^2*A)^2*A)^2*A
    ------------------1-----1-----1-----1-----1-----1-----1-----1-----1------1-----1-----1-----1-----1-----1-1

    otro ejemplo mas pequeño: 101b
    A^5 ((A^2)^2)*A
    5(101b) 1--0--1

    En el caso q nos ocupa, vemos q se empieza con A*A mod N y se va multiplicando 14 veces por *A)^2 mod N
    y al final *A mod N, Se implementa asi;
    public static int InversoMultiplicativo(long a)
    {
    long x= (a*a)%65537;
    for(int i = 0; i<14; i++)
    {
    x=(x*a)%65537;
    x = (x*x)%65537;
    }
    x = (x*a)%65537;
    return ((int)(x));
    }

    Saludos

 

 

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Back to Top