grado.sti.hash
Class FuncionResumenXORDesplazamiento

java.lang.Object
  extended by grado.sti.hash.FuncionResumenXORDesplazamiento
All Implemented Interfaces:
FuncionResumenI

public class FuncionResumenXORDesplazamiento
extends java.lang.Object
implements FuncionResumenI

Función Resumen que opera sobre el mensaje aplicando un XOR a nivel binario (bit) en cada bloque, de la siguiente manera:

Para cada bloque j de tamaño n del mensaje:

C = C << 1 (circular)

C = C XOR bj

siendo:

- C el valor del hash (inicialmente 0) de tamaño n

- << la operación de rotación o desplazamiento circular a la izquierda de 1 bit del valor del hash

- bj el j-enésimo bloque

- XOR la operación XOR a nivel de bit

Esta función resumen rota el valor del hash 1 bit a la izquierda de manera circular en cada iteración

Author:
Jorge López Hernández-Ardieta

Constructor Summary
FuncionResumenXORDesplazamiento()
           
 
Method Summary
 byte[] calcularResumen(byte[] mensaje, int tamanyoBloque, int tamanyoHash)
          Método que calcula el resumen del mensaje aplicando un XOR a los bloques del mensaje, y desplazando 1 bit el valor del hash en cada etapa.
 void inicializar()
          Método para la inicialización de la función resumen.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FuncionResumenXORDesplazamiento

public FuncionResumenXORDesplazamiento()
Method Detail

inicializar

public void inicializar()
Método para la inicialización de la función resumen. Se deberá invocar antes de poder operar con la función resumen.

Specified by:
inicializar in interface FuncionResumenI

calcularResumen

public byte[] calcularResumen(byte[] mensaje,
                              int tamanyoBloque,
                              int tamanyoHash)
                       throws java.lang.Exception
Método que calcula el resumen del mensaje aplicando un XOR a los bloques del mensaje, y desplazando 1 bit el valor del hash en cada etapa. Se aplica un padding PADDING_0x0n en caso que el tamaño del mensaje no sea múltiplo del tamaño del bloque/hash.

Specified by:
calcularResumen in interface FuncionResumenI
Parameters:
mensaje - Mensaje sobre el cual calcular el resumen
tamanyoBloque - Tamaño del bloque a emplear internamente por la función resumen
tamanyoHash - Tamaño del resumen a generar
Returns:
Resumen generado
Throws:
java.lang.Exception