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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Seguridad
| | |-+  Criptografía (Moderador: kub0x)
| | | |-+  GCM tablas M
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: GCM tablas M  (Leído 3,827 veces)
cpu2


Desconectado Desconectado

Mensajes: 994


Ver Perfil
Re: GCM tablas M
« Respuesta #10 en: 21 Julio 2021, 22:42 pm »

Hola

Cuanto tiempo ha pasado ya, disculpas por abandonar el tema pero he tenido que ocuparme de otras cosas.

Aqui dejo el codigo, lo he testeado a mano siguiendo el algoritmo del PDF del NIST el 1. Testeado con 1 byte.

Se que se puede mejorar, pero no he encontrado un TEST VECTOR para este algoritmo, como los que hay en el PDF de AES al final de todo.

He pensado en contruir todo el PAPER del NIST y luego retomar esto de las las tablas, no se o ire tirando.

Código
  1. .section .text
  2. .globl _start
  3. .align 16
  4.  
  5. _start:
  6.  
  7. pxor %xmm0, %xmm0                        # xmm0 | Z
  8. movdqu %xmm1, (%rsp)                     # rsp  | x
  9. movdqu %xmm1, -16(%rsp)                  # rsp  | V
  10.  
  11. _l02:
  12.  
  13. movq $-16, %rax                           # contador byte
  14.  
  15. _l01:
  16.  
  17. xorq %r8, %r8                          # contador bit
  18. movq $-8, %r9
  19.  
  20. _l0:
  21.  
  22. btq %r8, 16(%rsp, %rax)                 # compruebo el bit  de el primer byte
  23. jnc _l1                                  # si el bit es 0,  paso a LSB
  24.  
  25. movdqu -16(%rsp), %xmm3
  26. pxor %xmm3, %xmm0                        # si el bit es 1, Z xor V, paso a LSB
  27.  
  28. _l1:
  29.  
  30. btq $63, -8(%rsp)                        # compruebo el ultimo bit 127 LSB 1 (V)
  31. jc _l2
  32.  
  33. movq -8(%rsp), %rbx
  34. shlq $63, %rbx
  35. shrq $1, -8(%rsp)
  36. shrq $1, -16(%rsp)                       # LSB(V)=0
  37. orq %rbx, -16(%rsp)
  38.  
  39. jmp _l3
  40.  
  41. _l2:
  42.  
  43. movq -8(%rsp), %rbx
  44. shlq $63, %rbx
  45. shrq $1, -8(%rsp)                        #LSB(V)=1
  46. shrq $1, -16(%rsp)
  47. orq %rbx, -16(%rsp)
  48. xorq $0x00000000000000e1, -16(%rsp)
  49.  
  50. _l3:
  51.  
  52. incq %r8
  53. incq %r9
  54. js _l0
  55.  
  56. incq %rax
  57. js _l01

El codigo en realidad no es muy bueno, comparandolo con las tablas GCM, y ni hablar del paso de parametros. Y todas las operaciones las realizo en memoria.

Me gustaria encontrar un test vector de este algoritmo, si alguien sabe algo por favor que me lo diga, o que me confirme que el codigo opera bien.

Saludos.


En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
PHP, Tablas y CSS
PHP
jamarchi 6 3,771 Último mensaje 25 Julio 2007, 16:32 pm
por Azielito
Tablas en VB?
Programación Visual Basic
leucocito 1 1,338 Último mensaje 15 Abril 2009, 04:24 am
por seba123neo
Tablas en C...
Programación C/C++
soser 3 6,366 Último mensaje 25 Septiembre 2010, 02:31 am
por .:BlackCoder:.
Tablas y PHP
PHP
zepjau 7 5,490 Último mensaje 14 Diciembre 2011, 08:46 am
por Z31C0S
tablas de sql con php
Desarrollo Web
basickdagger 3 1,594 Último mensaje 14 Febrero 2013, 06:42 am
por basickdagger
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines