Você está na página 1de 5

1/7/2014 Verificao de redundncia cclica

http://nanhus10.freehostia.com/cyclic-redundancy-check/Print.html 1/5
Verificao de redundncia cclica
Escrito por Nano
Quinta-feira, 7 de abril, 2011 00:29
Verificao de redundncia cclica

A verificao de redundncia cclica (CRC) um cdigo de erro de deteco projetado para detectar alteraes acidentais de
dados de computador em bruto, e comumente usado em redes digitais e dispositivos de armazenamento, como discos rgidos. Um
dispositivo habilitado CRC-calcula uma, de comprimento fixo seqncia binria curto, conhecido como o valor de verificao ou de forma
inadequada o CRC , para cada bloco de dados a serem enviados ou armazenados e acrescenta dados, formando uma palavra-cdigo .
Quando uma palavra-cdigo recebido ou lido, o dispositivo ou compara seu valor de verificao com um recm-calculado a partir do
bloco de dados, ou equivalentemente, realiza uma CRC em toda a palavra-chave e compara o valor de verificao resultante com uma
expectativa resduo constante. Se os valores de verificao no corresponderem, em seguida, o bloco contm um erro de dados eo
dispositivo pode tomar medidas corretivas, como a releitura ou solicitar o bloco de ser enviado novamente, caso contrrio, os dados so
assumidos como sendo livre de erros (embora, com alguma pequena probabilidade , pode conter erros no detectados;. esta a
natureza fundamental da verificao de erros)
[ 1 ]
CRCs so assim chamados porque a verificao de cdigo (verificao de dados) uma redundncia (acrescenta informaes zero a
mensagem) eo algoritmo baseado em cclicos cdigos. CRCs so populares porque eles so simples de implementar em binrio hardware
, so fceis de analisar matematicamente, e so particularmente bons em detectar erros comuns causados pelo rudo em canais de
transmisso. Como o valor de verificao tem um tamanho fixo, a funo que a gera ocasionalmente usada como uma funo hash. O
CRC foi inventado por W. Wesley Peterson em 1961; o polinmio de 32 bits usado na funo CRC de Ethernet e muitos outros padres
o trabalho de vrios pesquisadores e foi publicado em 1975.
CRCs so baseados na teoria da cclicos cdigos de correo de erros . A utilizao de cdigos cclicos sistemticos, que codificam as
mensagens adicionando um valor de verificao de comprimento fixo, com a finalidade de deteco de erros em redes de comunicao foi
proposto pela primeira vez por W. Wesley Peterson em 1961.
[ 2 ]
cdigos cclicos no so apenas simples de implementar mas tem a
vantagem de ser particularmente adequado para a deteco de erros em rajada, sequncias contguas de smbolos de dados errneos
nas mensagens. Isto importante porque os erros de rajada so erros de transmisso comum em muitos meios de comunicao ,
incluindo dispositivos de armazenamento magnticos e pticos. Tipicamente, um n bits CRC, aplicado a um bloco de dados de
comprimento arbitrrio, ir detectar qualquer erro nica exploso no mais do que n bits e detecta uma fraco 1-2
- n
de todas as
rajadas de erros mais longos.
Especificao de um cdigo CRC requer a definio de um chamado gerador polinomial . Isto assemelha-se o divisor polinomial numa
diviso longa polinomial, que leva a mensagem como o dividendo e em que o quociente descartado e o restante passa a ser o
resultado, com a importante diferena de que os coeficientes polinomiais so calculados de acordo com a aritmtica-transporte menos um
campo finito. O comprimento da parte restante sempre menor do que o comprimento do polinmio gerador, o qual, por conseguinte,
determina o tempo que o resultado pode ser.
Na prtica, todos os CRCs vulgarmente utilizados empregam o campo finito GF (2). Este o campo de dois elementos, geralmente
chamados 0 e 1, que correspondem arquitectura confortavelmente computador. O restante deste artigo ir discutir apenas estes CRCs
binrios, mas os princpios so mais gerais.
O sistema mais simples de deteco de erro, o bit de paridade, de facto um trivial CRC 1 bits: utiliza o gerador polinomial x 1.
[Editar] CRCs e integridade de dados
CRCs so projetados especificamente para proteger contra os tipos mais comuns de erros em canais de comunicao, onde eles podem
fornecer uma garantia rpida e razovel da integridade das mensagens enviadas. No entanto, eles no so apropriados para proteger
contra alterao intencional de dados. Em primeiro lugar, porque no h nenhuma autenticao, um atacante pode editar uma
mensagem e recalcular o CRC sem a substituio ser detectado. Este o caso mesmo quando o CRC encriptado, que conduz a uma das
falhas de concepo do protocolo WEP.
[ 3 ]
Em segundo lugar, as propriedades lineares de cdigos CRC, mesmo permitir que um intruso
para modificar uma mensagem, de tal modo a deixar o verificar o valor inalterado,
[ 4 ] [ 5 ]
e de outra forma permitir o reclculo eficiente
do CRC para mudanas compactos. No entanto, ainda muitas vezes falsamente assumido que quando uma mensagem e seu valor de
verificao correto so recebidos de um canal aberto, em seguida, a mensagem pode no ter sido alterada em trnsito.
[ 6 ]
Funes hash criptogrficas, embora ainda no proporcionando segurana contra alterao intencional, pode fornecer erro mais forte do
check-in que no se baseiam em pressupostos padro de erro especficas. No entanto, eles so muito mais lentos do que CRCs, e so,
portanto, comumente usado para proteger os dados off-line, tais como arquivos em servidores ou bases de dados.
CRCs e funes de hash criptogrficas por si s no protegem contra intencional modificao de dados. Qualquer aplicao que requer a
proteo contra esses ataques devem utilizar mecanismos de autenticao de criptografia, tais como cdigos de autenticao de
mensagens.
Clculo do CRC
Ver artigo principal: Clculo do CRC
Para calcular um n CRC-bit binrio, alinhar os bits que representam a entrada em uma fila, e posicione o ( n padro +1) bits que
representa divisor do CRC (chamado de "polinmio") debaixo da extremidade esquerda da linha .
Comece com a mensagem a ser codificados:
1/7/2014 Verificao de redundncia cclica
http://nanhus10.freehostia.com/cyclic-redundancy-check/Print.html 2/5
11010011101100
Este o primeiro preenchidos com zeros correspondentes ao comprimento de bit n do CRC. Aqui est o primeiro clculo para calcular um
CRC de 3 bits:
11010011101100 000 <--- entrada esquerda desviado por 3 bits
1011 <--- divisor (4 bits)
------------------
01100011101100 000 <--- resultado
Se o bit de entrada acima da mais esquerda bit divisor for 0, no fazer nada e mover o divisor para a direita um pouco. Se o bit de
entrada acima do bit mais esquerda um divisor, o divisor XORed na entrada (em outras palavras, o bit de entrada acima de cada
um-bit no divisor alternado). O divisor ento deslocado um pouco para a direita, e o processo repetido at que o divisor atinge a
extremidade do lado direito da linha de entrada. Aqui est o clculo inteiro:
11010011101100 000 <--- entrada esquerda desviado por 3 bits
1011 <--- divisor
01100011101100 000 <--- resultado
1011 <--- divisor ...
00111011101100 000
1011
00010111101100 000
1011
00000001101100 000
1011
00000000110100 000
1011
00000000011000 000
1011
00000000001110 000
1,011
00000000000101 000
101 1
-----------------
00000000000000 100 <--- restante (3 bits)
Uma vez que o bit mais esquerda divisor zerado a cada bit de entrada que tocou, quando esse processo terminar os nicos bits na linha
de entrada que pode ser diferente de zero so os n bits no final do lado direito da linha. Estes n bits so o restante do passo de diviso,
e tambm ser o valor da funo de CRC (a menos que a especificao CRC escolhido exige algum processamento posterior).
A validade de uma mensagem recebida pode ser facilmente verificada por realizar o clculo acima novamente, desta vez com o valor
acrescentado de verificao em vez de zeros. O restante deve ser igual a zero se no h erros detectveis.
11010011101100 100 <--- entrada com valor de verificao de
1011 <--- divisor
01100011101100 100 <--- resultado
1011 <--- divisor ...
00111011101100 100
e assim por diante at que:

00000000001110 100
1,011 mil
00000000000101 100
101 1
------------------
0 <--- restante
[Editar] Matemtica do CRC
Ver artigo principal: Matemtica do CRC
Esta seo precisa de ateno de um especialista sobre o assunto . Veja a pgina de discusso para mais
detalhes. WikiProject Matemtica ou o Portal de Matemtica pode ser capaz de ajudar a recrutar um especialista. (agosto de
2010)
Anlise Matemtica desse processo de diviso semelhante revela como escolher um divisor que garante boas propriedades de deteco
de erros. Nesta anlise, os dgitos das cadeias de bits so considerados como os coeficientes de um polinmio em alguma varivel x
coeficientes que so elementos do corpo finito GF (2) em vez de nmeros mais familiares. Este polinomial binrio tratado como um anel.
Um anel , falando livremente, um conjunto de elementos um tanto como nmeros, que pode ser operado por uma operao que se
assemelha um pouco disso e outra operao que lembra um pouco a multiplicao, essas operaes possuem muitas das propriedades
aritmticas familiares de comutatividade, associatividade e distributividade. Teoria do anel parte da lgebra abstrata.
1/7/2014 Verificao de redundncia cclica
http://nanhus10.freehostia.com/cyclic-redundancy-check/Print.html 3/5
[Editar] polinmios Projetando CRC
A seleo de gerador polinomial a parte mais importante da implementao do algoritmo CRC. O polinomial deve ser escolhido para
maximizar a capacidade de deteco de erro, enquanto minimiza as probabilidades totais de coliso.
O atributo mais importante do polinmio o seu comprimento (o maior grau (expoente) +1 de qualquer um termo no polinmio), por
causa de sua influncia direta do comprimento do valor de verificao computadorizada.
Os comprimentos polinomiais mais comumente utilizados so:
9 bits (CRC-8)
17 bits (CRC-16)
33 bits (CRC-32)
65 pedaos (CRC-64)
O design do polinmio CRC depende do comprimento mximo total do bloco a ser protegido (dados + bits CRC), os recursos de proteo
de erro desejados, e os recursos para a implementao do tipo CRC, bem como o desempenho desejado. Um equvoco comum que os
"melhores" polinmios CRC so derivados a partir de qualquer um polinmio irredutvel ou um polinmio vezes irredutveis o fator (1 + x ) ,
o que aumenta o cdigo a capacidade de detectar todos os erros que afetam um nmero mpar de bits.
[ 7 ]
Na realidade, todos os
fatores descritos acima deve entrar na seleo do polinmio. No entanto, a escolha de um polinmio no irredutvel pode resultar em
erros perdidas devido ao anel tendo zero divisores.
A vantagem de escolher um polinmio primitivo como o gerador de cdigo CRC que o cdigo resultante tem mxima comprimento total
do bloco; aqui se r for o grau do gerador polinomial primitiva ento o total de blocklength mxima igual a 2
r
- 1 , e o cdigo associada
capaz de detectar qualquer bit individual ou erros duplos. Se em vez disso, foi utilizado como gerador polinomial g ( x ) = p ( x ) (1 + x ) ,
onde p ( x ) um polinmio primitivo de grau r - 1 , ento o total de blocklength mxima seria igual a 2
r - 1
- 1 , mas o cdigo seria capaz
de detectar erros, duplos e triplos.
Um polinomial g ( x ) que admite outras fatorizaes pode ser escolhido, em seguida, de modo a equilibrar a blocklength total de mxima
com um poder de deteco de erro pretendida. Uma classe potente de tais polinmios, que engloba os dois exemplos descritos acima,
que os cdigos de BCH. Independentemente das propriedades de redutibilidade de um polinmio gerador de grau r, assumindo que inclui
o "+1" prazo, tal cdigo de deteco de erro ser capaz de detectar todos os padres de erro que esto confinados a uma janela de r
bits contguos. Esses padres so chamados de "rajadas de erro".
[Editar] Especificao do CRC
O conceito do CRC como um cdigo de erro de deteco fica complicado quando uma comisso de implementador ou normas transforma-
lo em um sistema prtico. Aqui esto algumas das complicaes:
s vezes, uma implementao prefixos um padro de bits fixa ao bitstream a ser verificado. Isto til quando os erros
clocking pode inserir bits 0 na frente de uma mensagem, uma alterao que, caso contrrio deixe o valor de verificao
inalterado.
Por vezes, uma aplicao anexa n bits 0 (sendo n o tamanho da CRC) para o fluxo de bits a ser verificada antes de ocorrer a
diviso polinomial. Isto tem a convenincia que o restante do fluxo de dados original, com o valor de verificao anexado
exactamente a zero, de modo que o CRC pode ser verificado simplesmente por executar a diviso polinomial no fluxo de bits
recebido e comparando o restante com zero.
Por vezes, uma implementao exclusivos-OR, um padro de bits fixa no resto da diviso polinomial.
Ordem de bits: Alguns esquemas de ver o bit de baixa ordem de cada byte como "primeiro", que, em seguida, durante a
diviso polinomial significa "mais esquerda", o que contrrio nossa compreenso habitual de "low-order". Esta conveno
faz sentido quando as transmisses de porta serial so CRC-check-in hardware, porque algumas convenes generalizadas de
transmisso de porta serial transmitir bytes bit menos significativo primeiro.
Ordem de bytes : Com CRCs multi-byte, pode haver confuso sobre se o byte transmitida primeiro (ou armazenados no byte
menor endereado de memria) o byte menos significativo ou o byte mais significativo. Por exemplo, alguns esquemas de CRC
de 16 bits trocar os bytes do valor de verificao.
Omisso do bit de mais alta ordem do polinmio divisor: Como o bit de alta ordem sempre 1, e desde que um n CRC-bit
deve ser definido por um ( n divisor +1) bits que transborda um n registo bits, alguns escritores assumir que desnecessrio
mencionar bit de alta ordem do divisor.
Omisso do bit de baixa ordem do polinmio divisor: Como o bit de baixa ordem sempre 1, autores como Philip Koopman
representam polinmios com seu bit de alta ordem intacta, mas sem o bit de baixa ordem (o x
0
ou 1 prazo). Esta conveno
codifica o polinmio completo com o seu diploma em um nmero inteiro.
Estas complicaes significa que existem trs maneiras comuns para expressar um polinmio como um inteiro: as duas primeiras, que so
imagens de espelho em binrio, so as constantes encontradas no cdigo; . terceiro o nmero encontrados em trabalhos de Koopman .
Em cada caso, um termo omitido Assim, o polinomial x
4
+ x + 1 pode ser transcrita como:
0x3 = 0011b, representando x
4
+ 0 x
3
+ 0 x
2
+ 1 x
1
+ 1 x
0
(MSB-primeiro cdigo)
0xC = 1100b, representando 1 x
0
+ 1 x
1
+ 0 x
2
+ 0 x
3
+ x
4
(LSB-primeiro cdigo)
0x9 = 1001B, o que representa 1 x
4
+ 0 x
3
+ 0 x
2
+ 1 x
1
+ x
0
(Koopman notao)
1/7/2014 Verificao de redundncia cclica
http://nanhus10.freehostia.com/cyclic-redundancy-check/Print.html 4/5
Na tabela abaixo so apresentados como:
Representaes: / invertida / inversa normal recproca
0x3 / 0xC / 0x9
[Editar] CRCs comumente utilizados e padronizados
Inmeras variedades de verificao de redundncia cclica foram incorporadas normas tcnicas. De nenhuma maneira que um
algoritmo, ou um de cada grau, atender todos os fins; Koopman e Chakrabarty recomendamos selecionar um polinmio de acordo com os
requisitos da aplicao e da distribuio esperada de comprimentos de mensagens.
[ 8 ]
O nmero de CRCs distintos em uso tm, porm,
levou a uma confuso entre os desenvolvedores que os autores procuraram abordar.
[ 7 ]
H trs polinmios reportados para CRC-12,
[
8 ]
treze definies conflitantes de CRC-16, e seis de CRC-32.
[ 9 ]
Os polinmios comumente aplicados no so os mais eficientes possveis. Entre 1993 e 2004, Koopman, Castagnoli e outros
entrevistados o espao dos polinmios de at 16 bits,
[ 8 ]
e de 24 e 32 bits,
[ 10 ] [ 11 ]
encontrar exemplos que tm um desempenho
muito melhor (em termos de distncia de Hamming para um determinado tamanho da mensagem) do que os polinmios de protocolos
anteriores, e publicar a melhor delas com o objetivo de melhorar a capacidade de deteco de erros de normas futuras.
[ 11 ]
Em
particular, iSCSI e SCTP adotaram uma das concluses desta pesquisa, o CRC-32C (Castagnoli) polinomial.
O projeto do 32-bit polinomial mais comumente usado pelos organismos de normalizao, CRC-32-IEEE, foi o resultado de um esforo
conjunto para o Laboratrio de Roma e da Diviso de Sistemas Eletrnicos da Fora Area por Joseph Hammond, James Brown e Shyan-
Shiang Liu do Instituto de Tecnologia da Gergia e Kenneth Brayer da MITRE Corporation. As aparies mais antigas conhecidas do
polinmio de 32 bits estavam em seus 1.975 publicaes: Relatrio Tcnico 2956 por Brayer para MITRE, publicado em janeiro e lanado
para a divulgao pblica atravs DTIC em agosto,
[ 12 ]
e Hammond, Brown e relatrio de Liu para a Roma Laboratrio, publicado em
maio.
[ 13 ]
Ambos os relatrios continham contribuies da outra equipe. Em dezembro de 1975, Brayer e Hammond apresentou seu
trabalho em um artigo na Conferncia Nacional de Telecomunicaes IEEE:. IEEE CRC-32 polinmio o polinmio gerador de um cdigo
de Hamming e foi selecionado para o seu desempenho de deteco de erros
[ 14 ]
Mesmo assim, o Castagnoli polinmio CRC-32C usado
em iSCSI ou SCTP corresponde ao seu desempenho nas mensagens de 58 bits-131 kbits, e supera-lo em vrias faixas de tamanho,
incluindo os dois tamanhos mais comuns de pacote Internet.
[ 11 ]
O padro ITU-T G.hn tambm utiliza CRC-32C para detectar erros na
carga til (embora utilize CRC-16-CCITT para cabealhos PHY).
A tabela abaixo lista apenas os polinmios dos vrios algoritmos em uso. Qualquer protocolo particular pode impor pr-inverso, ps-
inverso e ordenao bit invertido, como descrito acima. CRCs em protocolos proprietrios podem usar um valor inicial no-trivial e XOR
final para ofuscao, mas isso no adicionar fora criptogrfica para o algoritmo.
Nome Polinomial
Representaes: / invertida /
inversa normal recproca
CRC-1 x + 1 (a maioria do hardware, tambm conhecido como bit de paridade ) 0x1 / 0x1 / 0x1
CRC-4-ITU x
4
+ x + 1 (ITU-T G.704 12, p.) 0x3 / 0xC / 0x9
CRC-5-EPC x
5
+ x
3
+ 1 (Gen 2 RFID
[ 15 ]
) 0x09 / 0x12 / 0x14
CRC-5-ITU x
5
+ x
4
+ x
2
+ 1 (ITU-T G.704 , p. 9) 0x15 / 0x15 / 0x1A
CRC-5-USB x
5
+ x
2
+ 1 (pacotes de token USB) 0x05 / 0x14 / 0x12
CRC-6-ITU x
6
+ x + 1 (ITU-T G.704 , p 3.) 0x03 / 0x30 / 0x21
CRC-7 x
7
+ x
3
+ 1 (sistemas de telecomunicaes, ITU-T G.707 , ITU-T G.832 , MMC, SD ) 0x09 / 0x48 / 0x44
CRC-8-
CCITT
x
8
+ x
2
+ x + 1 (ATM HEC ), ISDN Header Erro Controle e celular Delimitao ITU-T I.432.1 (02/99) 0x07 / 0xE0 / 0x83
CRC-8-
Dallas/Maxim
x
8
+ x
5
+ x
4
+ 1 (bus 1-Wire) 0x31 / 0x8C / 0x98
CRC-8 x
8
+ x
7
+ x
6
+ x
4
+ x
2
+ 1
0xd5 / 0xAB / 0xEA
[ 8 ]
CRC-8-SAE
J1850
x
8
+ x
4
+ x
3
+ x
2
+ 1 0x1D / 0xB8 / 0x8E
CRC-8-
WCDMA
x
8
+ x
7
+ x
4
+ x
3
+ x + 1
[ 16 ]
0x9B / 0xD9 / 0xCD
[ 8 ]
CRC-10 x
10
+ x
9
+ x
5
+ x
4
+ x + 1 (ATM; ITU-T I.610 ) 0x233 / 0x331 / 0x319
CRC-11 x
11
+ x
9
+ x
8
+ x
7
+ x
2
+ 1 (FlexRay
[ 17 ]
) 0x385 / 0x50E / 0x5C2
CRC-12 x
12
+ x
11
+ x
3
+ x
2
+ x + 1 (sistemas de telecomunicaes
[ 18 ] [ 19 ]
) 0x80F / 0xF01 / 0xC07
[ 8 ]
CRC-15- CAN x
15
+ x
14
+ x
10
+ x
8
+ x
7
+ x
4
+ x
3
+ 1 0x4599 / 0x4CD1 / 0x62CC
CRC-16-IBM x
16
+ x
15
+ x
2
+ 1 (Bisync, Modbus, USB, ANSI X3.28 , muitos outros, tambm conhecido como CRC-16 e CRC-16-ANSI ) 0x8005 / 0xA001 / 0xC002
CRC-16-
CCITT
x
16
+ x
12
+ x
5
+ 1 (X.25, V.41 , HDLC , XMODEM, Bluetooth, SD , muitos outros, conhecidos como CRC-CCITT ) 0x1021 / 0x8408 / 0x8810
[ 8 ]
CRC-16-T10-
DIF
x
16
+ x
15
+ x
11
+ x
9
+ x
8
+ x
7
+ x
5
+ x
4
+ x
2
+ x + 1 (SCSI DIF) 0x8BB7
[ 20 ]
/ 0xEDD1 / 0xC5DB
1/7/2014 Verificao de redundncia cclica
http://nanhus10.freehostia.com/cyclic-redundancy-check/Print.html 5/5
CRC-16-DNP x
16
+ x
13
+ x
12
+ x
11
+ x
10
+ x
8
+ x
6
+ x
5
+ x
2
+ 1 (DNP, IEC 870 , M-Bus) 0x3D65 / 0xA6BC / 0x9EB2
CRC-16-
DECT
x
16
+ x
10
+ x
8
+ x
7
+ x
3
+ 1 (telefone sem fios)
[ 21 ]
0x0589 / 0x91A0 / 0x82C4
CRC-16-
Fletcher
No um CRC; veja soma de verificao de Fletcher Usado em Adler-32 A & B CRCs
CRC-24 x
24
+ x
22
+ x
20
+ x
19
+ x
18
+ x
16
+ x
14
+ x
13
+ x
11
+ x
10
+ x
8
+ x
7
+ x
6
+ x
3
+ x + 1 (FlexRay
[ 17 ]
)
0x5D6DCB / 0xD3B6BA /
0xAEB6E5
CRC-24
Radix-64
x
24
+ x
23
+ x
18
+ x
17
+ x
14
+ x
11
+ x
10
+ x
7
+ x
6
+ x
5
+ x
4
+ x
3
+ x + 1 (OpenPGP) 0x864CFB / 0xDF3261 / 0xC3267D
CRC-30 x
30
+ x
29
+ x
21
+ x
20
+ x
15
+ x
13
+ x
12
+ x
11
+ x
8
+ x
7
+ x
6
+ x
2
+ x + 1 ( CDMA )
0x2030B9C7 / 0x38E74301 /
0x30185CE3
CRC-32-Adler No um CRC; ver Adler-32 Ver Adler-32
CRC-32-IEEE
802.3
x
32
+ x
26
+ x
23
+ x
22
+ x
16
+ x
12
+ x
11
+ x
10
+ x
8
+ x
7
+ x
5
+ x
4
+ x
2
+ x + 1 ( V.42 , Ethernet, SATA , MPEG-2, PNG,
[
22 ]
POSIX cksum)
0x04C11DB7 / 0xEDB88320 /
0x82608EDB
[ 11 ]
CRC-32C
(Castagnoli)
x
32
+ x
28
+ x
27
+ x
26
+ x
25
+ x
23
+ x
22
+ x
20
+ x
19
+ x
18
+ x
14
+ x
13
+ x
11
+ x
10
+ x
9
+ x
8
+ x
6
+ 1 (iSCSI e SCTP
, G.hn carga til, SSE4.2)
0x1EDC6F41 / 0x82F63B78 /
0x8F6E37A0
[ 11 ]
CRC-32K
(Koopman)
x
32
+ x
30
+ x
29
+ x
28
+ x
26
+ x
20
+ x
19
+ x
17
+ x
16
+ x
15
+ x
11
+ x
10
+ x
7
+ x
6
+ x
4
+ x
2
+ x + 1
0x741B8CD7 / 0xEB31D82E /
0xBA0DC66B
[ 11 ]
CRC-32Q x
32
+ x
31
+ x
24
+ x
22
+ x
16
+ x
14
+ x
8
+ x
7
+ x
5
+ x
3
+ x + 1 (aviao; AIXM
[ 23 ]
)
0x814141AB / 0xD5828281 /
0xC0A0A0D5
CRC-40-GSM x
40
+ x
26
+ x
23
+ x
17
+ x
3
+ 1 (canal de controle GSM
[ 24 ] [ 25 ]
)
0x0004820009 / 0x9000412000 /
0x8002410004
CRC-64-ISO x
64
+ x
4
+ x
3
+ x + 1 (HDLC - ISO 3309, Swiss-Prot / TrEMBL ; considerado fraco para hash
[ 26 ]
)
0x000000000000001B /
0xD800000000000000 /
0x800000000000000D
CRC-64-
ECMA-182
x
64
+ x
62
+ x
57
+ x
55
+ x
54
+ x
53
+ x
52
+ x
47
+ x
46
+ x
45
+ x
40
+ x
39
+ x
38
+ x
37
+ x
35
+ x
33
+ x
32
+ x
31
+ x
29
+
x
27
+ x
24
+ x
23
+ x
22
+ x
21
+ x
19
+ x
17
+ x
13
+ x
12
+ x
10
+ x
9
+ x
7
+ x
4
+ x + 1 (como descrito no ECMA-182 p 51.)
0x42F0E1EBA9EA3693 /
0xC96C5795D7870F42 /
0xA17870F5D4F51B49

Você também pode gostar