elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 98
41  Seguridad Informática / Criptografía / Re: GCM tablas M en: 15 Mayo 2020, 08:55 am
Realmente lo que estás haciendo es díficil, ya que entender un proyecto entero, por fases y algoritmos lleva semanas, pues tienes que entender bien cada parte. No te fustres, sigue el camino. Las dudas estarían bien acumularlas y cuando no puedas avanzar más, estudiar y responder tus propias preguntas. Te puedo decir que hace un año me inicié en una rama de la crypto de la cual no tenía ni idea, y a día de hoy, me veo con un nivel fuertísimo y leyendo lo que los expertos suben sin problema. Si lo tienes por hobby y te gusta, en poco tiempo veras grandes resultados.

Tengo que hacer lo que me acabas de decir, una recopilacion de todos los problemas que veo, y de hay sacar una conclusion, ya que no he avanzado mucho desde mi anterior mensaje, he buscado mas informacion tampoco es que haya mucha...

https://crypto.stackexchange.com/questions/57785/gcm-cipher-m0-tables-semantic-questions-on-how-to-implement-gcm?rq=1

https://crypto.stackexchange.com/questions/67642/gcm-optimisation-using-m-0-and-r-tables-calculation-of-r?rq=1

Ya veo que no soy el unico con problemas xD.

Si, todo lo que ago es por hobby pero con un proposito, tengo mas cosas por hacer, cosas que ni siquiera he planteado, y ahora mismo lo que siento es una perdida de tiempo, ya que no puedo estar profundizando tanto en las cosas, cuando te topas con este tipo de problemas te das cuenta de que no sabes nada...

En mi rutina utilizo Sage y Wolfram Mathematica. Traen métodos para reducir modulo f(x) y un sinfín más. Si no en C++ utilizo NTL que es una librería que es un All in 1. Trae lo básico de number theory y aritmética en GL(n,p), GL(n,p^e), GF(p), GF(p^n), creo que es incluso mejor utilizar éstas que rollear tus propios métodos aritméticos para la crypto.

Si, depende de como se mire estoy inventando la rueda de nuevo, seria mucho mas facil usar la libreria de openssl o cualquier otra, y hacer llamadas, pero no me gusta programar de esa forma me gusta crear mis propias funciones (no me gusta que mis programas solo haya call call call call xD), todos sabemos pasar parametros a funciones y llamarlas (no quiero ofender a nadie) a parte para el proposito que tengo es mejor asi.

Ahora mismo tengo esta rutina para hacer las multiplicaciones:

Código
  1. section .data
  2.  
  3. _R: .quad 0x0000000000000000,0xe100000000000000
  4.  
  5. section .text
  6. globl _mulbl
  7.  
  8. _mulbl:
  9.  
  10.  
  11. pushq %rax
  12. movdqa $-127, %rax         ; rax  == i
  13. pxor %xmm0, %xmm0          ; xmm0 == Z
  14.  
  15.  
  16. _C.0:
  17.  
  18. andq $1, 127(%rax,%r10)    ; %r10 == x
  19. jz _C.1
  20. pxor (%r11), %xmm0         ; %r11 == V
  21.  
  22. _C.1:
  23.  
  24. movdqa (%r11), %xmm1
  25. andq $1, 127(%r11)
  26. jz _C.2
  27.  
  28. psrldq $1, %xmm1
  29. pxor _R, %xmm1
  30. movdqa %xmm1, (%r11)
  31. jmp _C.3
  32.  
  33. _C.2:
  34.  
  35. psrldq $1, %xmm1
  36. movdqa %xmm1, (%r11)
  37.  
  38. _C.3:
  39.  
  40. incq %rax
  41. js _C.0
  42.  
  43. popq %rax
  44. retq
  45.  

Bueno haciendo mis calculos a base de los del paper, sale mas o menos a unos 80-90 OPS por byte, sin tablas. En la pag 12 del documento sale la tabla, 119 OPS en la implementacion del paper.

Si miramos la tabla, con el metodo Shoup’s, mejora notablemente el rendimiento, comparando mi funcion con el Shoup’s de 4-bit, hay mas o menos un 30% de rendimiento superior a la mia.
Pero dudo que mi funcion cause overhead no?

Lo dicho dicho, voy a leer un pelin mas.

Saludos.
42  Seguridad Informática / Criptografía / Re: GCM tablas M en: 11 Mayo 2020, 19:03 pm
Hola

El de metodos generales, me recuerdo que ya lo lei en su dia, por el tema de AES. Voy a leer con calma los dos restantes.

Creo que ya cada vez lo tengo mas claro, tambien me preocupa mucho el peso de 64K que tienen las tablas, y cada vez que quiera cambiar el codigo volver a calcular y el espacio en memoria, pero eso ya es otra historia.

He visto que se pueden hacer tablas de 4-bit, y ocuparia unos 8,192 bytes, y solo consumiria un pelin mas de recursos, pero el espacio baja mucho.

Pero ya tengo bastante lio de momento, gracias por el apoyo.

Saludos.
43  Seguridad Informática / Criptografía / GCM tablas M en: 11 Mayo 2020, 03:23 am
Hola

La duda que tengo esta en este paper, punto 4.1 Software:

https://luca-giuzzi.unibs.it/corsi/Support/papers-cryptography/gcm-spec.pdf

Segun lo que puedo entender la variable P es una representacion de un elemento primitivo en gf(2), el modulo f es la variable R.

La x es un byte, tiene unas 256 conbinaciones, las tablas M son de 256 elementos.

Mas o menos todo esto lo llevo bien, si vamos a la pag 9, en (3) se puede observar la variable P que es el polinomio α.

En la pag 14 tenemos el algoritmo numero 3, con este podriamos computar las tablas M, los 65,535 bytes/key si no me equivoco. Doy por sentado de que con el algortimo 3, ya podria crear todas las tablas, cifrando la cadena de de 128 bits de 0s con el codigo.

Pero no acabo de entender del todo la variable P del algritmo 3.

Perdon si no se me entiende bien, estoy algo liado.

Saludos.
44  Foros Generales / Foro Libre / Re: Tema Coronavirus COVID-19. en: 6 Mayo 2020, 16:58 pm
Si, el tema del 5G es ya conspirativo 100% xD, si busque un poco sobre este hombre, si los libros son suyos xD.

Saludos.
45  Foros Generales / Foro Libre / Re: Tema Coronavirus COVID-19. en: 6 Mayo 2020, 00:14 am
Hola @El_Andaluz, esta subtitulado, pero lo he encontrado hablado en castellano.

46  Foros Generales / Foro Libre / Re: Tema Coronavirus COVID-19. en: 5 Mayo 2020, 23:01 pm
Hola, quiero compartir un video no se si ya a sido compartido, para saber cual es vuestra opinion.



Saludos.
47  Programación / Programación C/C++ / Re: ¿Alguna manera para guardar resultados de un for? en: 3 Mayo 2020, 23:29 pm
Hola

Pues con un puntero ya tendrias suficiente desde mi punto de vista. En este caso con el 1 2 3 4 5, con un puntero de 5 elementos int, y en cada ciclo del for se guarde el valor.

Saludos.

48  Seguridad Informática / Criptografía / Re: Multiplicacion por bloques GCM en: 3 Mayo 2020, 23:22 pm
Hola

Estado mirando el tema de la optimizacion, lo que tenia pensado no tiene mucho sentido ahora que lo pienso, por lo que he visto la mejor forma es haciendo tablas ya precomputadas, lo malo es el espacio que estas generan.

La informacion esta en el pdf gcm-spec.pfd apartado 4, lo he estado mirando voy a profundizarlo mejor, seguro que saldran preguntas.

Saludos.
49  Seguridad Informática / Criptografía / Re: Multiplicacion por bloques GCM en: 30 Abril 2020, 00:38 am
Una diferencia notable es que en el primero utiliza el bit i-esimo del poly Y y en la segunda descripcion utiliza el i-esimo bit del poly X.

Si, de hay tambien me surgieron las dudas, de que el nist pudiera a ver modificado la funcion y demas. De hay me salio la confusion de la i tambien.

Resumiendo, en la primera descripción se abstienen de utilizar esos subindices para cada iteracción en las tuplas/polinomios/bloques Z y V y prefieren dejarlo de una manera general. En la segunda, prefieren incluir dichos subíndices. Muchas veces se hace así (personalmente lo hago), para más tarde introducir elementos como el Z_i, Z_i+1, Z_j, Z_k y demás.

De esta forma, al lector le cuesta menos asociar, incluso a nosotros mismos.

Un saludo.

Vale, entonces como me temia solo era otro tipo de anotacion, ya decia yo, no es la primera vez que tengo problemas con sintaxis, desde mi punto de vista es mas comoda la primera, ya que no soy matematico, he visto formulas en otros sitios que ni entendia y verlas al programadas las he entendido a la primera.

Entiendo que los desarolladores de dichos algoritmos sean criptografos y matematicos con mucha experiencia, pero estaria mejor adaptar algunas formulas, para que sean mas entendible a un publico mas "informatico" por asi decirlo. Pero bueno esos ya son lloriqueos  :D

A ver cuando me pongo manos a la obra, con esto, lo bonito va ser optimizar la funcion ya que es muy tediosa de la forma que esta anotada, creo que ya tengo alguna idea, haciendo mascaras de bits y grupos, como hice con el AES en su dia. Pero tengo que verlo.

Con esto de la cuarentana me tiene desanimado  :D.

Gracias, saludos.
50  Seguridad Informática / Criptografía / Multiplicacion por bloques GCM en: 29 Abril 2020, 21:56 pm
Hola, estado tiempo fuera haciendo otras cosas, y quiero retomar un viejo proyecto, y tengo unas dudas que pueden resultar hasta basicas, pero es lo que tiene abandonar las cosas y luego querer retomarlas. Voy al grano.

Tengo una duda con la funcion de multiplicacion de GCM, mas bien con su sintaxis, aqui pongo una captura del pdf gcm.



Es una funcion simple, la variable Z pasa a ser un bloque de 128 bits de ceros, la variable X obtiene el valo de la variable V

A partir de hay empieza un for de 128 ciclos, depende del valor de los bit de V, en caso de ser 1, se hace un XOR entre las variables Z y V y el valor es reescrito a la variable Z. El ciclo sigue se comprueba el ultimo bit de la variable V, en caso de ser 0 se elimina un bit a la derecha y el valor es reescrito a la variable V, en caso de ser 1 se elimina un bit a la derecha y se hace un XOR al bloque V con la variable R, escrita mas arriba de la funcion lo siento no se puede observar en la captura, (( Se supone que el shift tiene preferencia sobre el XOR y se ejecuta antes, supongo.)) al finalizar se reescribe la variable V, se completaria el ciclo for y tendriamos el resultado final en la variable Z.

Parece que lo entiendo todo bien, esta funcion la he sacado de este paper:

https://luca-giuzzi.unibs.it/corsi/Support/papers-cryptography/gcm-spec.pdf

Bien el problema lo tengo cuando leo la misma funcion pero en el paper del NIST, aqui la captura:



Bien aqui el problema que le veo es la sintaxis, no entiendo por que en las variables Z, V, tienen la variable i que esta hace de contador para los bits, se hace las operaciones a nivel de bits? En el paper de gcm se hacen a nivel de bloque, no se si me explico. A lo mejor es igual, solo que me esta liando la sintaxis., por otra parte sobre la duda del shift y el xor a la variable R, queda resuelta ya que se puede observar que tiene preferencia el shift.

Bueno esa es mi duda, la maldita variable i, simplemente sintaxis? Aqui documento:

https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf

Un saludo.

P.D: Las capturas me han quedado algo grandes y no he ajustado el tamaño, lo siento.
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 98
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines