Académique Documents
Professionnel Documents
Culture Documents
Qu es un CRC?
Los CRC son una funcin hash que detecta cambios accidentales en los datos informticos, estos cdigos son utilizados en las redes de telecomunicaciones digitales y dispositivos de almacenamiento tales como unidades de disco duro. Esta tcnica fue inventada por W. Wesley Peterson en 1961 y desarrollada por el CCITT (Comit Consultatif International Tlgraphique et Tlphonique). Los CRC son muy simples de implementar en hardware y pueden ser fcilmente analizados matemticamente. Es una de las mejores tcnicas en la deteccin de errores de transmisin comnmente utilizadas. Funcin Hash: una funcin hash (o un algoritmo hash) es una funcin que produce una salida de longitud fija para cualquier valor de entrada. La probabilidad de que dos entradas diferentes produzcan una misma salida es muy baja.
El perro
Funcion Hash
ARFTGYHUJIJD
El perro negro
Funcion Hash
FTREDSYUIJHG
Funcion Hash
DTYHJIUTREDS
CRC
Funcionamiento
Dado un bloque o mensaje de k-bits, el transmisor genera una secuencia de bits, denominada secuencia de comprobacin de la trama (FCS, Frame Check Sequence), de tal manera que la trama resultante, con n bits, sea divisible por algn nmero predeterminado. El receptor dividir la trama recibida entre ese nmero y si no hay residuo en la divisin, supondr que no ha habido errores.
M=Bloque de k
bits
T=Trama Resultante
El objetivo es que la divisin , donde P es el patrn de
(este es el divisor
bits,
aadiendo ceros al resultado. Finalmente, en la obtencin de T, al sumar F lo que estamos haciendo es, en realidad, concatenar D y F. El objetivo es hacer T divisible entre P. Supngase que se divide entre P:
Hay un cociente y un residuo, el residuo ser siempre al menos un bit ms corto que el divisor, ya que la divisin es mdulo 2. La secuencia de comprobacin de la trama, o FCS, ser igual al resto de la divisin. Entonces:
El patrn P se elige con un bit ms que la longitud de la FCS deseada. El patrn elegido en particular, depender del tipo de errores que se espera sufrir. Como mnimo, el bit ms significativo y el menos significativo de P deben ser 1. Hay un mtodo conciso para detectar la presencia de uno o ms errores. Un error provocar que se invierta un bit. Esto es equivalente a calcular la funcin XOR entre el bit y 1. Por tanto, los errores en una trama de n bits se pueden representar mediante una palabra de n bits, teniendo 1 en aquellas posiciones que coincidan con un error. La trama Tr resultante se puede expresar como:
CRC
Donde: T= trama transmitida. E= patrn de errores con 1 en las posiciones donde haya un error. Tr= trama recibida. Si ha habido un error (E0), el receptor fallar en la deteccin si, y solamente si, Tr es divisible entre P, lo que es equivalente a que E sea divisible entre P. Intuitivamente, esto parece que es un evento improbable.
Polinomios Generadores: Una segunda forma de ver el proceso de CRC es expresar todos los valores como polinomios de una variable X, con coeficientes binarios. Los coeficientes correspondern con los bits del nmero en binario. As, si: , se tendr que , se tiene que De nuevo, las operaciones se realizan en aritmtica mdulo 2. El procedimiento de CRC se puede describir de la siguiente manera:
Un error E(X) no se detectar solamente si es divisible entre P(X). Es ms, se puede demostrar que si todos los patrones de error son equiprobables, entonces, para una rfaga de errores con longitud r+1, la probabilidad de que no se detecte un error es rfagas mayores, la probabilidad es , donde r es la longitud de la FCS. Una comprobacin de redundancia cclica tambin se aplica a los dispositivos de almacenamiento como discos duros. En este caso, los bits de control se asignan a cada bloque en el disco duro. Cuando un archivo corrupto o incompleto es ledo por el ordenador, se informa del error de redundancia cclica. Este puede ser de otro dispositivo de almacenamiento o desde CD o DVD. Las razones ms comunes para los errores son fallas del sistema, archivos incompletos o corruptos, o archivos con gran cantidad de errores. , y para
CRC
Los diseos polinomios para un CRC dependen de la longitud del bloque a proteger, las caractersticas de proteccin contra errores, los recursos para la implementacin del CRC y el rendimiento deseado. Es frecuente utilizar alguna de las cuatro definiciones siguientes para P(X): Nombre Comn CRC-12 CRC-16 CRC-CCITT CRC-32 r 12 16 16 32 Generador Polinomio Hex 80F 800F 1021 04C1 1DB7
compuertas XOR.
3. La presencia o ausencia de una compuerta corresponder con la presencia o ausencia del trmino correspondiente en el polinomio divisor, P(X), excluyendo a los trminos 1 y
CRC
La siguiente figura nos muestra una arquitectura genrica para la realizacin de un cdigo de CRC mediante un registro de desplazamiento para el polinomio:
Donde
del procedimiento CRC con desplazamientos hacia la derecha, lo cual es contrario a la divisin binaria. Debido a que los nmeros binarios se representan habitualmente con el bit ms significativo a la izquierda, es ms apropiado usar un registro de desplazamiento a la izquierda como el aqu usado. El mismo circuito se utiliza tanto para la creacin y de verificacin de la CRC. Cuando la creacin de la FCS, el circuito acepta los bits de la trama sin procesar y luego una secuencia de ceros. La longitud de la secuencia es la misma que la longitud de la FCS. El contenido del registro de desplazamiento ser el FCS para anexar. Al comprobar la FCS, el circuito acepta los bits de la trama recibida. El contenido del registro de desplazamiento debe ser cero o de lo contrario hay errores.
CRC
Bibliografa
Black, R. (18 de Febrero de 1994). Bluebook. Obtenido de University of Cambridge Computer Laboratory Systems Research Group: http://www.cl.cam.ac.uk/research/srg/bluebook/21/crc/crc.html Houghton, A. (1996). The Engineer's Error Coding Handbook. Sheffield (UK): CHAPMAN & HALL. Martin Stigge, H. P.-P. (24 de 05 de 2006). Humboldt University Berlin. Obtenido de Reversing CRC Theory and Practice: http://sar.informatik.huberlin.de/research/publications/SAR-PR-2006-05/SAR-PR-2006-05_.pdf