grado.sti.hash
Class FuncionResumenXORBasica

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

public class FuncionResumenXORBasica
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:

Ci = bi,1 XOR bi,2 XOR ... XOR bi,m

siendo:

- Ci el i-enésimo bit del hash, con 1<= i <= n

- m el número de bloques de tamaño n bits del mensaje

- bi,j el i-enésimo bit del j-enésimo bloque

- n el tamaño del bloque en que se divide el mensaje, y que coincide con el tamaño del hash generado

- XOR la operación XOR a nivel de bit

Author:
Jorge López Hernández-Ardieta

Constructor Summary
FuncionResumenXORBasica()
           
 
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.
 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

FuncionResumenXORBasica

public FuncionResumenXORBasica()
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. El mensaje se trocea en segmentos (bloques) de tamaño tamanyoBloque. El tamaño del hash resultante, indicado por tamanyoHash, debe coincidir con el tamaño de bloque mencionado. 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