Cuando una pieza de hardware de la computadora se comunica con otra pieza se envía una secuencia de 1s y 0s de longitud arbitraria, y claro está, existe la posibilidad de un error. Para verificar errores, el hardware hace algunos símbolos de anillo de la teoría. Formalmente, esto se llama Comprobación de Redundancia Cíclica (CRC), y es un fiel generalización de la "dígito de verificación" todos aprendimos en la escuela. Sin embargo, se puede detectar nn errores en lugar de sólo uno (o más bien, no-igual-a-cero-mod-(n+1n+1)-errores en contraposición a un número impar de errores).
Derecho, por lo tanto, el hardware que hace es esto: Hay una cadena fija, digamos 10111011. Cada pieza de hardware conocido a este. A continuación, el equipo quiere que para enviar una cadena, que tiene una longitud arbitraria. Por ejemplo, 1111100111111001. El hardware, a continuación, en repetidas ocasiones realiza un XOR con esta cadena, que es algo que el hardware puede hacer muy rápido (que es uno de los beneficios de la convención).
Y111110011011y−−−−−→01001001Y111110011011y−−−−−→01001001
Ahora tenemos una nueva cadena, 10010011001001. Así XOR de nuevo, varias veces hasta que nos vemos obligados a parar.
Y10010011011y−−−−−→0010001y−−−−−100011011y−−−−−→111Y10010011011y−−−−−→0010001y−−−−−100011011y−−−−−→111
y tenemos que dejar como 10111011 es de más de 111111, así que no podemos XOR. Si nos terminó con una cadena de longitud inferior a tres, por ejemplo, 1111, a continuación, guardarlo como 011011. El hardware, a continuación, envía la concatenación de la cadena original con la nueva cadena de longitud tres, 1111100111111111001111. La recepción de la pieza de hardware de los recortes de los últimos tres dígitos para obtener la cadena original y realiza las idéntica operación (recuerde: se sabe que la cadena 10111011). Si termina con 111111 las cosas son hunky-dory. De lo contrario, no es un error, por lo que se le pide para enviar la cadena de nuevo.
Este sistema tiene un número de ventajas. Por ejemplo, XOR se realiza de forma rápida por el hardware y las cadenas pueden ser de longitud ilimitada. Así que, esto es realmente utilizado por el hardware.
A la derecha, ahora para las matemáticas! Lo que está pasando es que estamos viendo en las cadenas de elementos sobre el anillo de F2[x], por lo que nuestro ejemplo string 11111001 es el polinomio x7+x6+x5+x4+x3+1. El hardware es simplemente encontrar el coset representante de este polinomio en el cociente del anillo de F2[x]/(x3+x2+1), que aquí es de x2+x+1. Simple!
Para el extra matemáticos giro: Esto funciona mejor si la cadena fija corresponde a un polinomio irreducible, entonces el cociente del anillo es en realidad un campo. De lo contrario, hay cero divisores, y cero-divisores significa que los errores no serán recogidos.