Product Design, Manufacturing & Innovation Resources
Lar » Design de produto » Fabricação » Somas de verificação no projeto e fabricação de produtos: como evitar etiquetas incorretas, erros de leitura de código de barras e recalls dispendiosos.

Somas de verificação no projeto e fabricação de produtos: como evitar etiquetas incorretas, erros de leitura de código de barras e recalls dispendiosos.

Somas de verificação no projeto e fabricação de produtos
Soma de verificação
A implementação de checksums melhora a integridade dos dados ao longo de todo o ciclo de vida do produto.

Um palete sai do cais com o produto correto, mas com a etiqueta errada. A fábrica receptora o escaneia, o sistema ERP aceita o código e, três semanas depois, surge uma reclamação referente a um lote que ninguém consegue localizar. Não havia nada de errado com a peça. Um único dígito estava errado nos dados que a identificavam.

Um checksum é o controle mais barato contra esse tipo de falha. Ele adiciona alguns dígitos ou bytes a um registro, e qualquer estação subsequente pode verificar o registro sem precisar consultar um banco de dados.
Os produtos físicos transportam dados por diversas mãos, máquinas e formatos. Um arquivo CAD se transforma em uma lista de materiais (BOM), uma lista de materiais se transforma em uma ordem de produção, e uma ordem de produção se transforma em uma etiqueta. A etiqueta se transforma em uma digitalização, e a digitalização se transforma em um registro de envio.

Este guia trata o checksum como uma ferramenta de qualidade, não como um tópico de TI ou desenvolvimento. Ele aborda os algoritmos, desde dígitos de verificação até SHA-256, e os aplica etapa por etapa: projeto, industrialização, produção, qualidade, logística e serviço. Cada capítulo termina com duas dicas para engenheiros que trabalham com produtos físicos.

 

Índice
1. Por que os produtos físicos dependem da integridade dos dados
2. O que é um checksum?
3. Propriedades essenciais e seu significado para as métricas de qualidade
4. Uma breve história dos checksums e similares
5. Onde os checksums se encaixam no ciclo de vida do produto
6. Bits de paridade e somas simples
7. Dígitos de verificação: como calcular um dígito de verificação GS1 e por que isso é importante.
8. Erros de leitura de código de barras: causas, verificação e soluções
9. Como evitar etiquetas incorretas
10. Somas de verificação de rede e barramento de campo
11. O que é verificação de erros CRC?
12. Funções de hash não criptográficas
13. Hashes criptográficos e como verificar um checksum SHA-256
14. Somas de verificação digitadas, assinaturas e autenticidade
15. Códigos de correção de erros
16. Comparação de algoritmos
17. Projeto e engenharia
18. Industrialização e fabricação, incluindo como verificar a atualização do firmware.
19. Gestão da qualidade e conformidade
20. A perspectiva Lean Six Sigma
21. Logística: como reduzir erros de separação de pedidos em armazéns
22. Assistência técnica, mercado pós-venda e fim de vida útil
23. Corrupção acidental versus corrupção maliciosa
24. Como escolher o dígito verificador correto
25. Guia de implementação
26. Lista de verificação de melhores práticas por função
Conclusão sobre somas de verificação e similares
Perguntas frequentes
Apêndices

Observação: As datas regulamentares mencionadas neste artigo, como as da Lei de Resiliência Cibernética da UE, do Passaporte de Produtos Digitais e da DSCSA dos EUA, foram verificadas em novembro de 2026. Confirme-as novamente antes de elaborar um plano de conformidade com base nelas.

Principais conclusões

  • Um checksum detecta erros acidentais. Impedir alterações deliberadas exige uma assinatura ou um código criptografado.
  • Dígitos de verificação protegem identificadores que pessoas e scanners manipulam. CRCs protegem frames e imagens de firmware. Hashes criptográficos protegem arquivos e registros.
  • O dígito verificador GS1 detecta todos os erros de um único dígito. Ele não detecta cerca de 11% das transposições adjacentes, ou seja, aquelas em que os dois dígitos diferem em 5.
  • Verifique no momento da criação e novamente no momento do uso. Uma única verificação em uma etapa deixa todas as outras etapas desprotegidas.
  • Considere a própria verificação como um sistema de medição. Teste-a com amostras sabidamente defeituosas, calibre os verificadores e acompanhe os resultados.

 

1. Por que os produtos físicos dependem da integridade dos dados

Um produto é um objeto físico mais os seus dados.

Esses dados incluem modelos CAD, desenhos, listas de materiais, imagens de firmware, tabelas de calibração, etiquetas, registros de lote, resultados de testes e documentos de envio. Um valor incorreto em qualquer um deles pode interromper uma linha de produção, enviar o item errado para um cliente ou forçar um recall.

Onde erros de dados entram na cadeia

Os erros geralmente provêm destas cinco fontes:

  • As pessoas digitam os dígitos incorretamente ou os leem de forma errada.
  • As máquinas interpretam incorretamente as marcas danificadas.
  • Bits de inversão de armazenamento e transmissão.
  • As alterações de processo substituem a versão correta por uma versão obsoleta.
  • Por fim, alguém pode alterar os dados propositalmente.
Erros de dados
Identificação das fontes de erros de dados nos processos de projeto e engenharia de produtos.
Fonte do erro Exemplo Consequência típica Controle típico
Chaveamento Dígitos transpostos em um número de peça Componente incorreto emitido para a linha dígito de verificação
Leitura Código de barras 1D borrado decodificado como outro número Lote errado registrado Verificação de simbologia, grau de verificação, correção de erros
Transmissão Inversão de bits em um quadro de barramento de campo Valor de referência ou sensor corrompido CRC
Armazenar Célula de flash degradada em campo Firmware ou dados de calibração corrompidos CRC, código de correção de erros
Versão Modelo de etiqueta antigo deixado na impressora Dados desatualizados sobre mercadorias enviadas Hash do arquivo liberado
Adulteração Imagem de firmware modificada Falha de segurança ou proteção Assinatura, código digitado

 

Custo da má qualidade

O custo da baixa qualidade se divide em prevenção, avaliação, falha interna e falha externa. Um checksum atua nas duas primeiras categorias. Ele avalia os dados automaticamente e impede que o erro se propague. A economia vem da detecção precoce do problema.

Um erro detectado na impressora de etiquetas custa uma reimpressão. O mesmo erro detectado pelo cliente custa contenção, triagem, possivelmente um recall e perda de confiança.

Regras práticas como a regra 1-10-100 são, na melhor das hipóteses, ilustrativas. Seus próprios registros de refugo, retrabalho e reclamações fornecem o multiplicador real.

Dicas profissionais para engenheiros

  • Mapeie cada etapa de transferência de informações em que uma pessoa redigita dados ou uma ferramenta os reformata, desde a liberação do arquivo CAD até a etiqueta de envio. Implemente as primeiras verificações nessas etapas de transferência.
  • Classifique as etapas de transferência de acordo com seu histórico de erros: reclamações, etiquetas de descarte e registros de retrabalho. Comece onde o custo por erro é mais alto, geralmente após o produto sair da fábrica.
Soma de verificação
Um checksum é um método de validação rápido para garantir a integridade dos dados no projeto e engenharia de produtos.

2. O que é um checksum?

Um checksum é um pequeno valor calculado a partir de um bloco de dados por um algoritmo definido. O remetente armazena ou transmite esse valor juntamente com os dados. O destinatário recalcula o valor a partir do que recebeu e compara os dois. Se forem diferentes, significa que os dados foram alterados em algum ponto entre os dois cálculos.

Pense em um medidor de aprovação/reprovação: você não mede a dimensão completa dos dados. Você aplica um teste rápido e repetível que retorna aprovado ou reprovado.

 

Terminologia do mundo dos checksums

Diversos termos são usados ​​de forma imprecisa em fábricas e equipes de software. A tabela os separa pela pergunta que cada um responde.

Prazo O que é isso? A pergunta responde Uso típico
dígito de verificação Um ou dois dígitos acrescentados a um identificador, calculado com uma fórmula modular. Este número foi digitado ou digitalizado corretamente? GTIN, SSCC, VIN, IBAN
Soma de verificação simples Soma ou XOR dos bytes de uma mensagem A mensagem curta chegou intacta? Sentenças NMEA 0183, registros Intel HEX
CRC Remainder of a polynomial division over [latex]\mathrm{GF}(2)[/latex] Houve alguma inversão de bits neste quadro, bloco ou imagem? CAN, Modbus RTU, Ethernet, firmware
Hash ou digestão Impressão digital de tamanho fixo de dados arbitrários Este arquivo é idêntico àquele arquivo? Pacotes de lançamento, downloads, desduplicação
MAC ou HMAC Hash ou cifra combinada com uma chave secreta Isso foi produzido por alguém que detinha a chave? Mensagens autenticadas, etiquetas de dispositivo
Assinatura digital Prova de origem assimétrica calculada sobre um hash Quem divulgou isso e permanece inalterado? Firmware, certificados, registros regulamentados
Código de correção de erros Redundância que permite o reparo de dados danificados O dano pode ser reparado? DataMatrix, código QR, memória ECC

Detecção versus correção

A maioria dos checksums apenas detecta um erro. Eles informam que algo está errado, mas não o quê. Isso é suficiente em uma linha de produção, onde a reação correta é parar, reimprimir, digitalizar novamente ou retransmitir. Os códigos de correção de erros vão além e reparam os dados, o que é adequado para marcas que serão danificadas ou memórias que se degradarão. O Capítulo 15 aborda esses códigos em detalhes.

Dicas profissionais

  • Escreva uma especificação de uma linha para cada verificação: os dados que ela protege, o modelo de erro que ela assume, o algoritmo e seus parâmetros. Uma verificação sem um modelo de erro não pode ser avaliada em uma FMEA.
  • Armazene um identificador de algoritmo ao lado de cada valor de verificação armazenado, por exemplo, o nome sha256 seguido pelo resumo. Dessa forma, uma migração posterior nunca invalidará os registros arquivados.

3. Propriedades essenciais e seu significado para as métricas de qualidade

Cada propriedade de um checksum tem uma contraparte no vocabulário da engenharia da qualidade. Mapeá-las permite que você incorpore a verificação em uma FMEA ou em um plano de controle sem precisar traduzi-las.

Propriedade Significado Contraparte de qualidade
Determinismo A mesma entrada sempre resulta no mesmo valor. Repetibilidade da verificação
Tamanho de saída fixo O valor tem n bits, independentemente do comprimento da entrada. Custo constante por cheque, comprimento do campo conhecido no rótulo
Probabilidade de detecção Proporção de dados corrompidos que alteram o valor. [latex]1 – P_{\mathrm{escape}}[/latex], input to the FMEA detection rating
Colisão Duas entradas diferentes resultam em um único valor. Escape, também chamado de falso positivo.
Distância de Hamming Menor número de erros de bit que podem passar despercebidos. Profundidade de detecção garantida
duração da rajada A sequência mais longa de bits corrompidos é sempre detectada. Adequado ao ambiente de ruído real, por exemplo, interferência eletromagnética próxima a inversores de frequência.
Efeito avalanche Em um bom algoritmo de hash, um bit de entrada invertido altera cerca de metade dos bits de saída. Torna uma correspondência acidental insignificante.

Probabilidade de detecção em números

For an arbitrary corruption pattern, an [latex]n[/latex]-bit check lets the error through with this probability:

[latex]\displaystyle P_{\mathrm{escape}} = 2^{-n}[/latex]

A mod-10 check digit lets about one random error in ten through. A 16-bit CRC lets one in 65,536 ([latex]2^{-16}[/latex]) through. A 32-bit CRC lets one in roughly 4.3 billion ([latex]2^{-32}[/latex]) through.

As propriedades garantidas são mais robustas do que esse valor estatístico. Um bom CRC detecta cada erro de bit único e cada rajada até o seu próprio comprimento. Os engenheiros escolhem um polinômio específico exatamente por esse motivo.

aritmética da taxa de escape

A taxa de escape de um erro de dados é igual à probabilidade de o erro ocorrer, multiplicada pela probabilidade de a verificação não o detectar.

[latex]\displaystyle P_{\mathrm{escape}} = P_{\mathrm{error}} \times P_{\mathrm{miss}}[/latex]

Take an error rate of 1 in 1,000 keyed entries and a mod-10 check digit. Then [latex]P_{\mathrm{escape}} = 10^{-3} \times 10^{-1} = 10^{-4}[/latex]. About 1 entry in 10,000 still passes with a wrong random value. State such numbers in the FMEA instead of rating detection by feel.

classificação de detecção FMEA

No manual AIAG-VDA FMEA de 2019, os controles de detecção são classificados de 1 a 10, onde 10 significa nenhuma capacidade de detecção. O mesmo manual substituiu o número de prioridade de risco por uma tabela de prioridade de ação que pondera primeiro a gravidade, depois a ocorrência e, por último, a detecção. Uma verificação automatizada que bloqueia a próxima operação pode justificar uma classificação de detecção muito melhor do que uma verificação visual. Guarde as evidências, por exemplo, um teste de desafio com amostras sabidamente defeituosas.

Aceitar falso
Equilibrar os tipos de erros na validação de dados para garantir precisão e eficiência no projeto do produto.

Aceitação falsa e rejeição falsa

Existem dois tipos de erros em qualquer verificação. Uma aceitação falsa permite a passagem de dados inválidos, que é o erro de escape. Uma rejeição falsa impede a passagem de dados válidos e consome tempo de processamento. Um dígito verificador ou CRC implementado corretamente nunca rejeita dados válidos, pois a regra é exata. Rejeições falsas ocorrem na etapa de leitura, como um scanner que falha ao detectar um código válido, porém impresso de forma incorreta.

Pontas

  • Na FMEA, cite a probabilidade de escape de uma verificação de n bits para corrupção aleatória, bem como o comprimento de rajada garantido e a distância de Hamming para falhas estruturadas, como evidência de detecção.
  • Não multiplique as taxas de escape de duas verificações, a menos que suas falhas sejam independentes. Duas verificações que leem a mesma fonte corrompida, ou compartilham um operador ou uma biblioteca de software, falham simultaneamente.

4. Uma breve história dos checksums e similares

As técnicas descritas neste artigo são antigas, e isso é uma vantagem. Cada uma delas possui décadas de comprovação prática, e cada modo de falha está documentado.

Ano Desenvolvimento Por que isso é importante aqui?
Início da década de 1950 Bits de paridade no telégrafo e nos primeiros sistemas de armazenamento de computadores. Primeira detecção prática de erros
1954 Hans Peter Luhn, da IBM, registra uma patente para um método de dígito verificador. Origem da verificação mod-10 em cartões de pagamento
1961 Peterson e Brown publicam verificações de redundância cíclica. Fundamentos dos CRCs em barramentos e firmware
1969 Verhoeff publica um esquema decimal que captura todas as transposições adjacentes Mostra que existem dígitos de verificação melhores do que o módulo 10.
1974 Primeiro item com código UPC escaneado na loja. Início da rastreabilidade baseada em código de barras
1995 SHA-1 especificado em FIPS 180-1 Começa a era da verificação de arquivos baseada em hash
2002 A família SHA-2 foi publicada no FIPS 180-2. SHA-256 torna-se o resumo padrão.
2004 Damm publica um dígito de verificação baseado em quasigrupos. Esquema simples com detecção de transposição completa
2015 SHA-3 padronizado no FIPS 202 segunda família independente de funções hash
2017 Primeira colisão prática do SHA-1, conhecida como SHAttered. SHA-1 é inadequado sempre que houver risco de adulteração.
2022 O NIST anuncia a aposentadoria do SHA-1 até 31 de dezembro de 2030. Horizonte de planejamento para produtos de longa duração

Dica profissional: Ao integrar uma interface legada, mantenha a verificação original nesse link e adicione uma verificação de ponta a ponta mais robusta na camada de aplicação. Alterar o formato de frame legado raramente compensa o risco.

5. Onde os checksums se encaixam no ciclo de vida do produto

Use esta tabela como um mapa para o restante do artigo. Ela mostra qual tipo de verificação se aplica em cada etapa e onde uma falha normalmente ocorreria.

Estágio Dados em risco Proteção típica Falha típica Onde surge
Projeto CAD, lista de materiais (BOM), código-fonte do firmware, números de peça Hash do pacote liberado, dígito verificador no número da peça, CRC no cabeçalho do firmware Revisão incorreta lançada, número da peça digitado incorretamente. Revisão de alterações de engenharia, primeira versão
Industrialização Receitas, parâmetros de PLC, modelos de etiquetas, programas de teste Comparar hash ou CRC com um registro mestre Receita antiga ou modelo carregado Primeiro artigo, julgamento em linha
Produção Marcas, números de série, firmware, dados da estação Grau de verificação, hash de leitura, CRC do barramento Marca ilegível, falha no flash, quadro corrompido Leitura em linha, teste de fim de linha
Qualidade Registros de testes, certificados, genealogia Hash chain, assinatura, trilha de auditoria Registro alterado ou ausente Auditoria, reclamação do cliente
Logística Eventos GTIN, SSCC, GLN, ASN, EPCIS dígito verificador GS1, totais de controle de mensagens Seleção incorreta, endereço de entrega errado, número de série duplicado Confirmação de coleta, recebimento de mercadorias
Serviço e fim da vida Atualizações, IDs de peças sobressalentes, passaportes Atualizações assinadas, peças autenticadas, identificadores únicos Atualização corrompida, peça falsificada Falha em campo, reclamação de garantia

Dicas profissionais

  • Crie uma matriz com os estágios do ciclo de vida, os objetos de dados, as verificações presentes e as evidências mantidas. Cada célula vazia representa uma lacuna, e a matriz se torna seu backlog de melhorias.
  • Gere a verificação no sistema de origem e verifique-a no sistema de destino com uma rotina escrita independentemente. Duas implementações expõem erros de parâmetros e de ordem de bytes que uma biblioteca compartilhada oculta.

6. Bits de paridade e somas simples

Um bit de paridade é um bit extra que garante que a contagem de uns em uma palavra seja par ou ímpar. Ele detecta qualquer número ímpar de bits invertidos e ignora todos os números pares. Duas inversões se cancelam e a palavra ainda é válida.

A paridade bidimensional organiza os dados em linhas e colunas e adiciona um bit de paridade a cada linha e a cada coluna. Ela localiza um único bit invertido e, portanto, pode corrigi-lo. Detecta todos os erros de dois ou três bits. Quatro bits invertidos nos cantos de um retângulo ainda passam despercebidos.

Somas de verificação aditivas e XOR

A próxima etapa soma todos os bytes, ou realiza um XOR entre eles, e envia o resultado. Essas verificações são baratas e cabem até mesmo no menor microcontrolador. Elas compartilham duas fragilidades que são importantes na prática. Ignoram a ordem dos bytes, então bytes trocados passam. Erros também podem compensar: um byte aumenta em uma unidade enquanto outro diminui em uma unidade, e a soma permanece inalterada.

Um checksum XOR também ignora qualquer número par de inversões na mesma posição de bit em bytes diferentes. Maxino e Koopman mediram a eficácia desses checksums para redes de controle embarcadas em 2009 e descobriram que os CRCs de mesma largura apresentam melhor desempenho em erros estruturados.

Onde eles ainda aparecem

Lugar Plano Comentário
Sentenças NMEA 0183 (GPS, eletrônica marítima) XOR dos caracteres entre o cifrão e o asterisco, enviados como dois dígitos hexadecimais. Detecta erros de um único bit, mas é fraco contra erros em pares.
Registros Intel HEX em arquivos de firmware Complemento de dois da soma dos bytes do registro Protege apenas cada registro, não a imagem inteira.
Conexões seriais legadas e sensores simples Soma de 8 bits ou XOR Leia a folha de dados e, em seguida, adicione uma verificação no nível da aplicação se os dados forem críticos.

A distinção entre maiúsculas e minúsculas no formato HEX da Intel é importante para o firmware. Um arquivo pode passar por todas as verificações de registro e ainda assim estar incompleto, porque um registro ausente não deixa rastros nos outros registros. Adicione um CRC ou hash em nível de imagem, conforme descrito no capítulo 18.

Dispositivos físicos que ainda utilizam paridade e somas simples.

Cartões com tarja magnética

Cada caractere possui um bit de paridade ímpar, e um caractere de verificação de redundância longitudinal segue o sentinela final. Um leitor rejeita um caractere que falhe em qualquer um dos testes.

Instrumentos seriais e periféricos de PLC

As conexões RS-232 e RS-485 podem adicionar um bit de paridade a cada caractere, o que corrige inversões de um único bit causadas por ruído elétrico.

Paridade
Utilização de bits de paridade e somas de verificação em dispositivos físicos para detecção de erros e integridade de dados.

Programadores Flash e bootloaders

Eles leem arquivos Intel HEX e Motorola S-record, que contêm uma soma para cada registro, e a ferramenta normalmente rejeita um registro que não corresponde.


Dicas de especialistas em TI

  • Nunca permita que um bloco apagado ou zerado seja validado. Comece a soma a partir de um valor diferente de zero ou armazene seu complemento, de forma que uma memória flash vazia, preenchida com bytes 0xFF ou 0x00, falhe na verificação.
  • As operações de soma e XOR ignoram a ordem dos bytes. Se uma conexão legada exigir isso, adicione um campo de comprimento e um número de sequência para que quadros trocados, descartados ou repetidos sejam detectados.

7. Dígitos de verificação: como calcular um dígito de verificação GS1 e por que isso é importante.

Os dígitos de verificação são os dígitos de verificação mais antigos e amplamente utilizados na indústria. Eles ficam no final dos identificadores que as pessoas digitam e as máquinas leem. Eles formam a base da rastreabilidade, porque cada lote, número de série, localização e remessa é referenciado por meio de um identificador.

Como calcular um dígito verificador GS1

A GS1 exige um dígito verificador em todas as chaves de identificação numérica de comprimento fixo, incluindo GTIN-8, GTIN-12, GTIN-13, GTIN-14, GLN e SSCC. O algoritmo é uma soma ponderada módulo 10. Os pesos alternam entre 3 e 1, e o dígito adjacente ao dígito verificador sempre recebe o peso 3.

  1. Escreva os dígitos da chave sem o dígito verificador.
  2. Começando da direita, multiplique os dígitos alternadamente por 3 e 1.
  3. Some os produtos de todos os dígitos.
  4. O dígito verificador é o valor que eleva a soma para o próximo múltiplo de 10. Se a soma já for um múltiplo de 10, o dígito verificador é 0.

Written as a formula, the check digit [latex]C[/latex] uses the digits [latex]d_i[/latex] of the body, counted from the right. The weight is [latex]w_i = 3[/latex] for odd [latex]i[/latex] and [latex]w_i = 1[/latex] for even [latex]i[/latex].

[latex]\displaystyle C = \left(10 – \left(\sum_{i=1}^{n} w_i d_i \bmod 10\right)\right) \bmod 10[/latex]

Exemplo prático para o corpo GTIN-13 400638133393. Contando da esquerda para a direita, os pesos são 1, 3, 1, 3 e assim por diante, porque o dígito mais à direita do corpo está em uma posição ímpar a partir da direita.

Dígito 4 0 0 6 3 8 1 3 3 3 9 3
Peso 1 3 1 3 1 3 1 3 1 3 1 3
Product 4 0 0 18 3 24 1 9 3 9 9 9

The products add up to 89. The next multiple of 10 is 90, so the check digit is [latex]C = (10 – (89 \bmod 10)) \bmod 10 = 1[/latex] and the complete GTIN-13 is 4006381333931. The same rule applies to an SSCC. The 17-digit body 34012345000000001 sums to 43, which gives [latex]C = (10 – (43 \bmod 10)) \bmod 10 = 7[/latex] and the SSCC 340123450000000017.

O que um dígito verificador captura

A tabela compara o esquema GS1 com três alternativas. Os valores de GS1 e Luhn foram confirmados por simulação com chaves aleatórias. As propriedades de Verhoeff e Damm estão documentadas em suas publicações originais.

Tipo de erro GS1 mod 10 (pesos 3 e 1) Luhn contra 10 Verhoeff Droga
Substituição de um único dígito Todos detectados Todos detectados Todos detectados Todos detectados
Transposição adjacente Todos os pares de dígitos, exceto aqueles que diferem em 5, representam cerca de 11% das trocas de dígitos diferentes. Todos, exceto 09 e 90. Todos detectados Todos detectados
Lixo aleatório de vários dígitos Cerca de 90% detectados Cerca de 90% detectados Cerca de 90% detectados Cerca de 90% detectados

A ponderação GS1 não é o esquema mais robusto disponível. É o que você deve usar para chaves GS1. Para identificadores definidos por você, escolha um esquema mais robusto.

Um dígito verificador válido também não indica a existência do número. Ele mostra que o número está bem formado. Não indica se o GTIN está alocado, pertence a este produto ou está ativo em seus dados mestres. Mantenha a validação dos dados mestres em conjunto com a verificação aritmética.

O dígito verificador do VIN na posição 9

Na América do Norte, a norma 49 CFR 565 exige um dígito verificador na posição 9 do VIN de 17 caracteres. Cada caractere é transliterado para um número e multiplicado por um peso posicional: 8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2. Os produtos são então somados. O resto da divisão por 11 é o dígito verificador, e um resto de 10 é escrito como a letra X.

[latex]\displaystyle C = \left(\sum_{i=1}^{17} t_i w_i\right) \bmod 11[/latex]

Here [latex]t_i[/latex] is the transliterated value and [latex]w_i[/latex] is the weight of position [latex]i[/latex].

Muitos VINs de origem europeia não possuem um dígito verificador válido, portanto, uma regra de validação norte-americana não deve rejeitá-los automaticamente. Um teste rápido para sua própria implementação: um VIN composto por dezessete uns deve produzir o dígito verificador 1. O texto da regra está em 49 CFR 565.15.

Outros esquemas que você conhecerá

  • Os códigos de barras EAN-13 em livros contêm um ISBN-13 e utilizam o algoritmo GS1. O antigo ISBN-10 utilizava um esquema mod 11.
  • Os números de cartões de pagamento e os números IMEI utilizam o algoritmo de Luhn, que Hans Peter Luhn, da IBM, descreveu em um pedido de patente de 1954.
  • O IBAN utiliza o MOD 97-10 da norma ISO/IEC 7064.
  • Os números de contêineres de transporte, de acordo com a norma ISO 6346, terminam com um dígito verificador.

Desenvolvendo um dígito verificador para números de série e de peças internas.

Muitas empresas criam identificadores e depois adicionam uma verificação caseira. Os esquemas caseiros frequentemente não detectam transposições, que são um erro comum de digitação. Use um esquema publicado, a menos que você tenha um motivo documentado para não fazê-lo.

  • Escolha um algoritmo estabelecido e publicado. Os algoritmos Damm ou Verhoeff são adequados para identificadores numéricos. A norma ISO/IEC 7064 define sistemas puros e híbridos para cadeias de caracteres numéricas, alfabéticas e alfanuméricas, entre eles MOD 11-2, MOD 37-2 e MOD 97-10.
  • Defina o comprimento do identificador e coloque o caractere de verificação por último.
  • Remova caracteres semelhantes, como O e 0, ou I e 1, do alfabeto, ou trate-os explicitamente no esquema.
  • Defina o algoritmo em um documento controlado com vetores de teste, de forma que todos os sistemas implementem a mesma regra.
  • Teste o esquema em relação às classes de erros que lhe interessam: substituição simples, transposição adjacente, erros gêmeos e erros fonéticos onde existe entrada de voz.
  • Considere o uso de números não significativos para novos esquemas. Isso evita a necessidade de renumerar quando uma classificação muda.
  • Valide em todos os pontos de entrada, incluindo ERP, MES, software de etiquetas e scripts de PLC. Uma verificação existente em um sistema é ignorada pelos demais.

Dispositivos e ferramentas que validam dígitos de verificação

Dispositivo ou ferramenta O que verifica Por que isso ajuda
Leitores e decodificadores de código de barras O dígito verificador EAN ou UPC durante a decodificação Uma leitura incorreta é descartada e nunca chega ao sistema host.
Software de etiquetas e servidores de impressão O dígito verificador da chave antes da impressão da etiqueta. Um GTIN ou SSCC digitado incorretamente nunca se torna uma etiqueta física.
terminais de pagamento O dígito Luhn do número do cartão Erros de digitação são rejeitados antes de qualquer chamada de rede.

Pontas

  • Gere dígitos de verificação a partir de uma função de biblioteca testada e reutilize-a em todos os sistemas. Nunca digite um dígito de verificação manualmente e inclua os vetores de teste do Apêndice A abaixo na biblioteca.
  • Armazene os identificadores como texto com comprimento fixo, de forma que os zeros à esquerda sejam preservados nas chaves GTIN-14 e SSCC. Valide o dígito verificador em cada ponto de entrada: impressão de etiqueta, recebimento de código de barras e importação para o sistema ERP.

8. Erros de leitura de código de barras: causas, verificação e soluções

Os erros de leitura de código de barras se dividem em três classes. Uma falha de leitura interrompe o processo e consome tempo. Uma leitura incorreta retorna um valor errado que parece válido. Uma leitura incorreta retorna um valor válido do item errado, por exemplo, de uma etiqueta vizinha. As leituras incorretas são a classe perigosa, e as verificações integradas às simbologias existem para minimizar sua ocorrência.

Verificações incorporadas na simbologia

Simbologia Verificação integrada Comentário
EAN-13, UPC-A, ITF-14 GS1 mod 10 dígito verificador Parte dos dados codificados
Código 128 e GS1-128 Verificação obrigatória do módulo 103 do personagem Protege o símbolo, e o leitor o remove. As chaves GS1 internas ainda possuem seu próprio dígito de modificação 10.
Código 39 Mod 43 opcional para verificar o personagem Ative esta opção quando controlar tanto a impressora quanto o leitor.
Intercalado 2 de 5 Mod 10 opcional Defina o comprimento esperado no leitor para evitar leituras parciais.
Data Matrix e código QR Correção de erros Reed-Solomon Repara módulos danificados, consulte o capítulo 15.

Ler não é o mesmo que ter qualidade.

Um leitor que decodifica um símbolo não comprova que o símbolo está correto. Símbolos marginais podem ser decodificados hoje, mas falham após o rótulo sofrer danos durante o transporte. Um verificador mede a qualidade de impressão em relação a um padrão e atribui uma classificação.

Tipo de símbolo Critério de classificação Comentário
Símbolos lineares em rótulos ISO/IEC 15416, edição 2025 As notas variam de 4,0 a 0,0, também escritas de A a F.
Símbolos bidimensionais em etiquetas ISO/IEC 15415, edição 2024 Notas de A a F
Marcação direta de peças (marcação por micropuncionamento, laser, corrosão) ISO/IEC 29158, anteriormente o relatório técnico ISO/IEC TR 29158 Utiliza iluminação diferente. Suas classificações não são comparáveis ​​às classificações da norma ISO/IEC 15415.

Os verificadores precisam ser calibrados com um cartão de teste de conformidade padrão. O padrão de aplicação ou o cliente define o grau mínimo aceitável. Consulte as Especificações Gerais da GS1 e quaisquer regras setoriais vigentes para o seu tipo de símbolo.

Causas e soluções

Causa Sintoma Consertar
Baixo contraste de impressão ou substrato inadequado. Leituras intermitentes de baixa qualidade. Troque a fita ou o substrato, ajuste a intensidade da impressão e verifique na impressora.
Zona de silêncio violada Falhas na borda do rótulo Corrija o layout da etiqueta, adicione uma verificação de modelo.
A dimensão X não corresponde à resolução da impressora. As barras se fundem ou as lacunas desaparecem. Escolha uma dimensão X que seja um número inteiro de pontos da impressora.
Configuração do leitor Leituras incorretas de simbologias habilitadas, mas não utilizadas. Habilite apenas as simbologias necessárias, defina os comprimentos e valide o dígito verificador.
Brilho ou baixa modulação em marcas diretas Leituras instáveis Utilize iluminação adequada à marca, verifique conforme a norma ISO/IEC 29158.
Danos durante o transporte Falha no receptor Utilize símbolos 2D com um nível de correção mais elevado e proteja a etiqueta com uma sobrelaminação.

Aplique uma única regra em cada estação de leitura. Decodifique, valide o dígito verificador, valide o formato em relação à chave esperada e somente então aceite o valor. Uma leitura que falhe em qualquer etapa aciona uma reação definida. Ela não deve acionar um loop de repetição que ninguém conta.

Dicas para aplicações no mundo real

  • Inclua o grau mínimo de verificação do símbolo na especificação de etiquetagem, juntamente com o padrão de medição e a configuração do verificador. Um símbolo que é lido na sua linha apenas demonstra que é lido, não que possui margem.
  • Considere a zona de silêncio como uma restrição rígida de layout no modelo de etiqueta. Teste as marcações diretas nas peças de acordo com a norma ISO/IEC 29158, sob as condições de iluminação e ângulo de leitura da estação real.

9. Como evitar etiquetas incorretas

Uma etiqueta incorreta é uma das falhas de dados mais comuns e visíveis. Ela tem diversas causas distintas, e um checksum resolve apenas algumas delas. Separe as causas antes de escolher os controles.

Modo de falha Exemplo Control Função do dígito de verificação
Dados impressos incorretos Os dados do pedido foram alterados após a criação do trabalho de impressão. Imprima a partir de uma fonte liberada e compare a carga útil impressa com o registro esperado. O dígito verificador valida a chave, a comparação detecta chaves incorretas.
Modelo ou versão incorretos Layout obsoleto com texto regulamentar desatualizado Libere os modelos sob controle de documentos e carregue-os por hash. Hash do arquivo de modelo armazenado no registro de lançamento.
Rótulo correto no produto errado A troca de rolo deixa etiquetas de outro produto na impressora. Liberação de linha, reconciliação de rolos, digitalização para correspondência na aplicação O dígito verificador, juntamente com a correspondência com o GTIN ou número de série esperado, é compatível com o dígito verificador.
Etiqueta ausente ou mal posicionada Etiqueta ignorada pelo aplicador Detecção de presença, verificação visual Nenhum, é necessário um controle diferente.
Número de série duplicado A reimpressão reutiliza uma publicação seriada. Alocação serial centralizada, restrição de unicidade Nenhum, um dígito verificador não detecta duplicados.
Símbolo ilegível Impressão de baixo contraste Verificador em linha com nota mínima Verificação e classificação de simbologia

Um processo de rotulagem de circuito fechado

  1. Libere o modelo de etiqueta e sua fonte de dados sob controle de alterações. Armazene um hash do arquivo de modelo no registro de liberação.
  2. Ao iniciar a impressão, a impressora ou o servidor de etiquetas calcula o hash do modelo carregado e o compara com o registro de liberação. Uma incompatibilidade impede a impressão do trabalho.
  3. Construa a carga útil a partir do único registro autorizado. Gere o dígito verificador em software com uma biblioteca testada e nunca o digite manualmente.
  4. Imprima e, em seguida, verifique o símbolo em linha. Uma classificação abaixo do mínimo especificado rejeita o rótulo.
  5. Escaneie o rótulo impresso e compare o conteúdo decodificado com o registro esperado para esta unidade. Rejeite qualquer unidade cujo rótulo não corresponda.
  6. Após a aplicação, faça uma nova verificação no ponto de embalagem ou expedição. Essa segunda verificação corrige erros que possam ocorrer após a impressão.
  7. Confira a contagem ao final de cada lote. Os rótulos emitidos, aplicados, descartados e devolvidos devem estar corretos.

A sequência utiliza três tipos de verificações. O hash comprova que o modelo está correto. O dígito verificador e o formato comprovam que a chave está bem formada. A comparação com o registro esperado comprova que é a chave correta para esta unidade. Somente a terceira verificação detecta um rótulo que está bem formado, mas incorreto.

Pontas

  • Execute uma verificação de limpeza da linha antes de cada troca de etiqueta. Remova os rolos antigos, as sobras de impressão e o modelo anterior, e permita que a impressão comece somente depois que o hash do modelo corresponder ao registro de liberação.
  • Escaneie cada etiqueta impressa em comparação com o registro do pedido, utilizando um dispositivo de parada obrigatória. Insira uma etiqueta sabidamente defeituosa no início de cada turno para comprovar que o dispositivo de parada ainda funciona.

10. Somas de verificação de rede e barramento de campo

As máquinas protegem seus dados com verificações definidas no protocolo. Essas verificações protegem a conexão, um salto de cada vez. Elas não protegem os dados depois que estes são armazenados na memória do CLP ou em um banco de dados.

Somas de verificação da Internet

Os cabeçalhos IP, TCP e UDP usam a soma de complemento de um de 16 bits descrita na RFC 1071. Ela é barata de calcular, mas fraca. Não detecta palavras de 16 bits trocadas e alguns erros compensatórios. As camadas de enlace adicionam um CRC mais forte por baixo, razão pela qual a soma de verificação fraca sobreviveu.

Os algoritmos Fletcher e Adler-32 são somas simples com dois acumuladores, portanto detectam mais erros de ordenação do que uma soma simples. O algoritmo Adler-32 está presente na biblioteca zlib. Ele apresenta desempenho inferior em mensagens curtas.

Modbus RTU

Os quadros Modbus RTU terminam com um CRC de 16 bits. O polinômio é 0x8005, usado em sua forma refletida 0xA001, com o valor inicial 0xFFFF. O byte menos significativo do CRC é enviado primeiro. O Modbus ASCII usa uma verificação de redundância longitudinal mais simples, de 8 bits.

Aqui está uma solicitação RTU completa que lê 10 registradores de retenção do escravo 1, começando no endereço 0. O valor CRC é 0xCDC5, que é transmitido na rede como C5 seguido por CD.

01 03 00 00 00 0A C5 CD

CAN e CAN FD

O CAN clássico usa um CRC de 15 bits com o polinômio 0x4599. Isso resulta em uma distância de Hamming de 6 para um comprimento de quadro fixo, de modo que quaisquer cinco erros de bit distribuídos aleatoriamente são detectados. O CAN FD usa um CRC de 17 bits para payloads de até 16 bytes e um CRC de 21 bits para payloads maiores, escolhido para manter a mesma distância de Hamming de 6.

A inserção de bits (bit stuffing) complica o cenário. O artigo "CAN in Automation" observa que a inserção de bits pode reduzir a distância de Hamming efetiva para alguns padrões de bits em quadros clássicos, e o CAN FD adiciona um contador de bits inseridos para compensar essa diferença. Os detalhes estão no artigo. Explicação da CiA sobre CRC em frames CAN.

Barramentos baseados em Ethernet

PROFINET, EtherCAT, EtherNet/IP e Modbus TCP transmitem seus dados em quadros Ethernet padrão. Cada quadro termina com uma sequência de verificação de quadro de 32 bits, um CRC-32, que os dispositivos verificam a cada salto. Quadros com uma sequência inválida são descartados.

Outros barramentos, entre eles PROFIBUS e IO-Link, definem suas próprias verificações de quadros. Leia a especificação do protocolo e registre a verificação em sua FMEA em vez de presumir que ela existe.

Barramentos baseados em Ethernet
Os barramentos baseados em Ethernet utilizam quadros Ethernet padrão com verificações de CRC para transmissão confiável de dados em aplicações industriais.

Protocolos de segurança no topo do ônibus

Protocolos de segurança como PROFIsafe, CIP Safety e Fail Safe over EtherCAT tratam o barramento subjacente como um canal negro. O canal pode corromper, atrasar, repetir ou reordenar mensagens. A camada de segurança adiciona seu próprio CRC, um contador de sequência e um watchdog, de forma que a função de segurança não dependa das verificações do enlace.

Aplique essa lição aos seus próprios projetos. Um CRC em nível de enlace não protege uma receita enquanto ela permanece na memória ou trafega por um servidor OPC UA e um MES. Adicione uma verificação de ponta a ponta em nível de aplicação para cada conjunto de parâmetros que afete a segurança ou a qualidade.

Dica: um O gateway recalcula o CRC no outro lado, de modo que a corrupção em sua memória passa despercebida. Adicione um CRC de ponta a ponta com um contador entre os gateways para cada sinal e ponto de ajuste relevantes para a segurança.

 

11. O que é verificação de erros CRC?

A cyclic redundancy check treats the message as a long binary number, which is a polynomial over [latex]\mathrm{GF}(2)[/latex]. It divides that polynomial by a fixed generator polynomial and keeps the remainder. The remainder is the CRC, usually 8, 16 or 32 bits long. The sender appends it, the receiver divides again, and any mismatch signals corruption.

Um exemplo prático

Take the 3-bit generator 1011, which stands for [latex]x^3 + x + 1[/latex], and the message 1101. Append three zeros to get 1101000. Then divide by repeated XOR with the generator.

1101000
1011
-------
0110000
 1011
-------
0011100
  1011
-------
0001010
   1011
-------
0000001

O resto é 001, então a palavra transmitida é 1101001. Dividindo essa palavra por 1011, obtemos o resto 000. Invertendo qualquer bit, o resto se torna diferente de zero. Os CRCs reais usam geradores de 8 a 32 bits e são executados em hardware ou com tabelas de consulta, mas o princípio é idêntico.

O que um CRC garante

  • Cada erro de um único bit ocorre enquanto o gerador tiver mais de um termo.
  • Cada erro de rajada não deve ser maior que a largura do CRC.
  • Every odd number of bit errors, for generators that contain the factor [latex]x + 1[/latex]. The common 16-bit polynomials qualify. The Ethernet CRC-32 does not.
  • Longer bursts and random patterns pass with a probability of roughly [latex]2^{-n}[/latex].
  • A distância de Hamming depende do polinômio e do comprimento da mensagem.

Os parâmetros que devem corresponder

Duas partes calculam o mesmo CRC somente se concordarem com seis parâmetros: largura, polinômio, valor inicial, reflexão de entrada, reflexão de saída e XOR final. Nomes como CRC-16 ou CRC-32 são ambíguos. Catálogo Reveng CRC Lista os conjuntos de parâmetros em uso comum. Confirme uma implementação com o valor de verificação da string ASCII 123456789.

Variante Polinomial Aquecer Reflita dentro e fora XOR final Verifique o valor Uso típico
CRC-8 0x07 0x00 Não 0x00 0xF4 Verificações genéricas de 8 bits, cabeçalho ATM
CRC-8/MÁXIMO 0x31 0x00 Sim 0x00 0xA1 Dispositivos Dallas e Maxim 1-Wire
CRC-16/MODBUS 0x8005 0xFFFF Sim 0x0000 0x4B37 Modbus RTU
CRC-16/CCITT-FALSO 0x1021 0xFFFF Não 0x0000 0x29B1 Protocolos seriais, carregadores de inicialização
CRC-16/XMODEM 0x1021 0x0000 Não 0x0000 0x31C3 XMODEM, alguns bootloaders
CRC-32 0x04C11DB7 0xFFFFFFFF Sim 0xFFFFFFFF 0xCBF43926 Ethernet, ZIP, PNG
CRC-32C 0x1EDC6F41 0xFFFFFFFF Sim 0xFFFFFFFF 0xE3069283 iSCSI, armazenamento, instruções de hardware

Escolhendo um polinômio pelo comprimento da mensagem

A força de um CRC depende do polinômio e do comprimento da mensagem. Koopman mostrou em um estudo de CRCs de 32 bits O polinômio IEEE 802.3 atinge uma distância de Hamming de apenas 4 em mensagens Ethernet de comprimento máximo, enquanto outros polinômios chegam a 6. Redes embarcadas com mensagens curtas apresentam diferenças maiores, e alguns polinômios de 16 bits amplamente copiados têm desempenho ruim nos comprimentos em que são utilizados.

  • Defina o intervalo de comprimentos das mensagens antes de escolher um polinômio.
  • Decida qual a distância de Hamming necessária no comprimento máximo. Aplicações críticas para a segurança geralmente exigem uma distância de 6.
  • Utilize o polinômio obtido a partir de resultados de buscas exaustivas publicadas, e não de conhecimento popular ou de um exemplo de código.

Limites de um CRC

Um CRC é uma função linear da mensagem. Dada uma mensagem e seu CRC, qualquer pessoa pode alterar a mensagem e calcular um CRC correspondente sem um segredo. Portanto, um CRC não prova nada sobre a origem e não pode impedir alterações deliberadas. Os capítulos 13 e 14 abordam as ferramentas que podem fazer isso.

Dispositivos que contêm um CRC

Dispositivo Localização do CRC Observação
Etiquetas RFID UHF (EPC Gen2) CRC de 16 bits em respostas de tags Detecta erros de leitura em portas de docas e esteiras transportadoras.
dispositivos USB CRC de 5 bits em pacotes de token, CRC de 16 bits em pacotes de dados. O host tenta novamente um pacote com falha.
Cartões SD e microSD CRC de 7 bits em comandos, CRC de 16 bits em blocos de dados. Armazenamento comum para logs e firmware em produtos embarcados

Dica: Faça com que o CRC abranja os campos de cabeçalho, endereço e comprimento, além da carga útil. Um CRC apenas sobre a carga útil permite a passagem de um endereço ou comprimento corrompido.

12. Funções de hash não criptográficas

Funções de hash não criptográficas, como xxHash, MurmurHash, CityHash e FNV, priorizam a velocidade em detrimento da segurança. Elas operam próximas à velocidade da memória em CPUs modernas e produzem valores de 32, 64 ou 128 bits que distribuem as entradas uniformemente.

Eles não oferecem nenhuma proteção contra alguém que cria entradas conflitantes de propósito:

Onde eles ajudam com dados do produto

  • Detecção de arquivos alterados durante a sincronização de PLM e PDM, sem a necessidade de transferir os arquivos.
  • Remoção de dados duplicados de grandes conjuntos de dados de teste e arquivos de imagens provenientes de sistemas de inspeção.
  • Comparar uma configuração exportada com uma armazenada para verificar se houve alguma alteração.
  • Inserção de caches e tabelas de pesquisa em pipelines de MES e análise.

Risco de colisão

The birthday bound sets the risk. For [latex]k[/latex] items and a [latex]b[/latex]-bit hash, the probability of at least one collision is approximately:

[latex]\displaystyle p \approx 1 – e^{-k^2 / 2^{b+1}}[/latex]

Com um hash de 64 bits e um milhão de itens distintos, a probabilidade de dois deles colidirem é de aproximadamente 2,7 em 100 milhões. Com um hash de 32 bits e 100.000 itens, a probabilidade de colisão é maior do que a de não colisão, em cerca de 69%.

Escolha 64 bits ou mais para os inventários. Considere uma correspondência como uma forte indicação e confirme-a comparando os dados completos quando o resultado for importante. Nunca use essas funções para provar que um arquivo é autêntico.

Dicas para engenheiros

  • Utilize hashes não criptográficos apenas para detecção de alterações e consultas dentro de seus próprios sistemas. Mantenha 64 bits ou mais para inventários e compare os dados completos sempre que uma correspondência influenciar uma decisão.
  • Nunca armazene valores da função hash integrada de uma linguagem de programação. Algumas, como a função hash de strings do Python, mudam entre execuções. Persista os resumos (ou hashes) de um algoritmo nomeado com uma semente fixa.
Seis-256
Compreender as funções hash criptográficas e suas propriedades de resistência para o projeto de produtos seguros.

13. Hashes criptográficos e como verificar um checksum SHA-256

Neste capítulo, vamos nos aprofundar em detalhes técnicos e práticos.

Uma função hash criptográfica deve resistir a três ataques:

  • A resistência à pré-imagem significa que ninguém consegue encontrar uma entrada para um determinado resumo.
  • A resistência à segunda pré-imagem significa que ninguém consegue encontrar uma entrada diferente que corresponda ao resumo de uma determinada entrada.
  • A resistência a colisões significa que ninguém consegue encontrar duas entradas com o mesmo resumo.
Algoritmo Saída Status Usar
MD5 128 bits Colisões podem ser produzidas na prática. Aceitável apenas para detectar corrupção acidental. Evite em novos projetos.
SHA-1 160 bits Colisão prática publicada em 2017. O NIST planeja desativá-la até 31 de dezembro de 2030. Somente sistemas legados
SHA-256, SHA-384, SHA-512 256, 384, 512 bits Não se tem conhecimento de ataques práticos. Valores padrão para hashes de versão, resumos de firmware e assinaturas.
SHA-3 (FIPS 202) 224 a 512 bits Design interno diferente do SHA-2 Família alternativa onde a diversidade é desejada
BLAKE2, BLAKE3 Até 512 bits, 256 bits por padrão. Moderno e rápido, não é um algoritmo aprovado pelo FIPS. Arquivos grandes onde a velocidade é importante e a aprovação não é necessária.

O NIST descreve o plano de desativação do SHA-1 em seu site. Página de anúncio do SHA-1Um resumo SHA-256 oferece cerca de 128 bits de resistência a colisões, o que está muito além de qualquer ataque prático.

Como verificar um checksum SHA-256

Você precisa de duas coisas: o resumo esperado de uma fonte confiável e o arquivo. Calcule o resumo localmente e compare a string completa. Comparar apenas os primeiros caracteres elimina grande parte da proteção.

# Linux sha256sum firmware.bin sha256sum -c SHA256SUMS # macOS shasum -a 256 firmware.bin # Windows PowerShell Get-FileHash .\firmware.bin -Algorithm SHA256 # Prompt de comando do Windows certutil -hashfile firmware.bin SHA256

Um arquivo SHA256SUMS contém uma linha por arquivo, com o resumo (dig), dois espaços e o nome do arquivo. O comando `sha256sum -c` lê o arquivo e imprime "OK" ou "FAILED" para cada arquivo. Verifique qualquer ferramenta em relação ao vetor de teste no Apêndice B antes de utilizá-la.

Um resumo ao lado do arquivo prova pouco.

Um atacante que consegue substituir um arquivo também consegue substituir o resumo (digest) associado a ele. Um resumo publicado protege contra downloads corrompidos. Ele não protege contra um servidor espelho malicioso ou um servidor web comprometido. Para garantir a autenticidade, utilize uma destas rotas.

  • Obtenha o resumo por meio de um canal separado e confiável, por exemplo, o portal do fornecedor via HTTPS ou um documento de compra assinado.
  • Verifique um arquivo de resumo assinado com uma chave cuja impressão digital você obteve independentemente, por exemplo, com gpg –verify SHA256SUMS.asc SHA256SUMS.
  • Deixe que o dispositivo ou o instalador verifique a assinatura do código, para que ninguém precise comparar as strings.

Cadeias de hash para registros de lotes e trilhas de auditoria

Uma cadeia de hashes torna um registro à prova de adulteração. Cada registro armazena o hash do registro anterior, e seu próprio hash abrange seu conteúdo mais esse valor.

[latex]\displaystyle H_n = \mathrm{SHA}\text{-}256(H_{n-1} \parallel r_n)[/latex]

Here [latex]r_n[/latex] is record number [latex]n[/latex].

Alterar qualquer registro fará com que todos os hashes posteriores deixem de corresponder. Uma cadeia comprova ordem e integridade somente se seu hash mais recente estiver ancorado fora do sistema que armazena o log. As opções incluem assinatura periódica, carimbo de data/hora confiável conforme a RFC 3161 ou envio do hash para um cliente ou auditor. Sem uma âncora, qualquer pessoa com acesso de escrita pode recalcular toda a cadeia.

14. Somas de verificação digitadas, assinaturas e autenticidade

Até agora, tudo é público. Qualquer pessoa pode calcular um CRC ou um SHA-256 para uma mensagem modificada. Para impedir alterações deliberadas, a verificação deve depender de um segredo ou de uma chave privada.

Mecanismo Como funciona Prova Manuseio de chaves Uso típico
HMAC (RFC 2104) Hash combinado com um segredo compartilhado Mensagem inalterada e emitida por um detentor da chave. Segredo compartilhado por ambos os lados Mensagens autenticadas entre sistemas e dispositivos
CMAC (NIST SP 800-38B) MAC baseado em uma cifra de bloco, geralmente AES. Igual ao HMAC Segredo compartilhado, compatível com hardware com mecanismo AES. Dispositivos embarcados, elementos seguros
Etiqueta AEAD (AES-GCM, ChaCha20-Poly1305) Criptografia combinada com uma etiqueta de autenticação Confidencialidade, integridade e origem Chave compartilhada e um nonce exclusivo por mensagem Telemetria e atualizações criptografadas
Assinatura digital (ECDSA, Ed25519, RSA) A chave privada assina um hash, a chave pública verifica. Integridade e origem, verificáveis ​​por qualquer pessoa que possua a chave pública. Chave privada em um módulo de segurança de hardware, chave pública em dispositivos Firmware, certificados, registros regulamentados

Os esquemas de segredo compartilhado colocam a chave em cada verificador. Uma chave que reside em dezenas de estações de teste ou milhares de dispositivos é difícil de proteger e de rotacionar. As assinaturas resolvem esse problema. As estações e os dispositivos armazenam apenas a chave pública, enquanto a chave privada permanece em um módulo de segurança de hardware na autoridade de liberação.

Não construa um MAC aplicando o hash SHA-256 a um segredo seguido da mensagem. O SHA-2 permite ataques de extensão de comprimento nessa estrutura. O HMAC existe justamente para evitar isso.

Inicialização segura
A inicialização segura e o firmware assinado melhoram a integridade e a segurança do produto na engenharia.

Casos de uso em ambientes de produto

    • Firmware assinado e inicialização segura. A ROM de inicialização verifica a assinatura do bootloader, e o bootloader verifica o aplicativo. O CRC ainda tem sua importância para a integridade em tempo de execução da memória flash e da RAM, mas nunca substitui a assinatura.
  • A autenticidade de uma peça de reposição é uma questão à parte. Um número de série com um dígito verificador válido não comprova a autenticidade, pois qualquer pessoa pode calculá-lo. A autenticação requer um segredo, por exemplo, uma etiqueta criptográfica em um elemento seguro ou um código que um servidor possa verificar e que ninguém possa deduzir a partir do número de série.
  • Os rótulos podem conter dados antifalsificação. A GS1 define um identificador de aplicação, AI 8030, para uma assinatura digital contida no suporte de dados juntamente com a chave.
  • Registros regulamentados exigem cuidados extras. Uma assinatura criptográfica dá suporte a registros eletrônicos, mas não equivale a uma assinatura eletrônica conforme definido na 21 CFR Parte 11. A regulamentação também exige controles de identidade, o significado da assinatura e sua vinculação ao registro.

Fechaduras, chaves e dispositivos de acesso

Fechaduras mecânicas e eletrônicas mostram a diferença entre detecção de erros e autenticação.

  • Fechaduras de pinos: os cortes da chave devem corresponder à altura dos pinos, de modo que a fechadura verifica um formato físico. Esse formato é, na prática, um segredo compartilhado, pois qualquer pessoa que o copie obtém acesso.
  • Credenciais sem contato de baixo custo: os quadros lidos contêm um CRC para corrigir erros de rádio, o que não comprova nada sobre a identidade. Cartões mais antigos, baseados em uma criptografia proprietária vulnerável, como o MIFARE Classic, podem ser clonados. As credenciais modernas usam o mecanismo de desafio-resposta com criptografias padrão, como o AES.
  • Fechaduras inteligentes Bluetooth Low Energy: a camada de enlace protege cada pacote com AES-CCM, cujo código de integridade da mensagem é uma verificação por chave.
  • Consumíveis e acessórios autenticados: alguns cartuchos de impressora, baterias e sensores contêm um chip que responde a um desafio criptográfico do dispositivo host.

Duas dicas profissionais

  • Planeje o gerenciamento de chaves antes de escolher o algoritmo. Use chaves separadas por família de produtos, insira-as em uma estação segura, mantenha-as em um módulo de segurança de hardware e registre a inserção por número de série.
  • Adicione um contador ou nonce a cada mensagem autenticada. Sem ele, um atacante pode reproduzir uma mensagem válida já gravada.

15. Códigos de correção de erros

A detecção indica que os dados estão incorretos e a correção os repara. O custo é maior redundância, e o benefício é que o processo continua sem uma nova verificação, retransmissão ou retrabalho.

Código Princípio Onde você o encontra
Código de Hamming com um bit de paridade extra (SECDED) Corrige qualquer erro de um único bit e detecta erros de dois bits. Memória ECC em PCs industriais e RAM e flash de microcontroladores
Reed-Solomon Correção baseada em símbolos que lida bem com rajadas. Código QR, Data Matrix ECC 200, discos ópticos, sistemas de armazenamento
BCH Correção binária multibit Controladores de memória flash NAND
LDPC Decodificação iterativa próxima do limite teórico Controladores SSD, padrões sem fio

Marcas que resistem a danos

Um código QR oferece quatro níveis de correção, L, M, Q e H, que restauram aproximadamente 7%, 15%, 25% e 30% dos códigos, respectivamente. O Data Matrix ECC 200 utiliza o algoritmo Reed-Solomon com uma quantidade fixa de redundância por tamanho de símbolo. Peças marcadas a laser, sujas ou arranhadas se beneficiam diretamente, assim como etiquetas que percorrem a cadeia de suprimentos.

A correção de erros torna a marcação robusta. Ela também pode mascarar a degradação. Um símbolo Data Matrix danificado pode ser decodificado perfeitamente, enquanto sua capacidade de correção de reserva diminui para zero. A verificação segundo a norma ISO/IEC 15415 reporta a correção de erros não utilizada como um parâmetro graduado. Monitore a classificação do verificador, e não o resultado da leitura, para acompanhar a qualidade de impressão e marcação.

Memória ECC e flash em produtos embarcados

Microcontroladores para uso automotivo e industrial frequentemente protegem a memória flash e a RAM com ECC (Correção de Erro de Correção). O hardware corrige inversões de bits individuais e as contabiliza. Leia os contadores de erros corrigidos e registre-os. Uma contagem crescente indica uma célula degradada, uma fonte de alimentação instável ou interferências de radiação. Um CRC (Código de Verificação de Correção) calculado após a correção considera dados limpos, portanto, o contador é o único sinal inicial obtido.

Memória Ecc
A memória ECC aumenta a confiabilidade em produtos embarcados, detectando e corrigindo erros na memória flash e na RAM.

Dispositivos e mídias que dependem da correção de erros.

  • As peças marcadas a laser e tratadas por microjateamento contêm símbolos Data Matrix ECC 200, que utilizam códigos Reed-Solomon, de modo que mesmo uma marca arranhada pode ser decodificada.
  • Servidores, controladores e microcontroladores automotivos: a memória ECC normalmente corrige erros de um único bit e detecta erros de dois bits.
  • SSDs, eMMC e cartões SD: o controlador aplica códigos BCH ou LDPC às páginas de memória flash, e seus contadores de bits corrigidos podem servir como um indicador de desgaste.

Pontas

  • Escolha o nível de correção de erros com base no método de marcação e no ambiente. Teste a escolha com danos intencionais, como arranhões e mascaramento parcial, e classifique o resultado.
  • Registre a contagem de erros corrigidos da memória ECC, da memória flash e da decodificação de símbolos. Uma tendência crescente é um sinal de alerta, pois uma unidade que ainda funciona pode não ter mais capacidade de correção.

16. Comparação de algoritmos

A tabela resume as famílias e onde cada uma se encaixa neste artigo. Os valores de velocidade dependem da plataforma, portanto, meça-os em seu próprio hardware.

Algoritmo Tamanho de saída Detecta Velocidade relativa Segurança contra mudanças deliberadas Uso típico aqui
Bit de paridade 1 bit Número ímpar de lançamentos Mais rápido Nenhum Links seriais legados
Soma de 8 bits ou XOR 8 bits Erros simples, fraco em erros estruturados Muito rápido Nenhum Sentenças NMEA, registros Intel HEX
GS1 mod 10 dígito verificador 1 dígito Todos os erros são de um único dígito, a maioria das transposições. Instant Nenhum GTIN, SSCC, GLN
Verhoeff, Damm 1 dígito Todos os erros de um único dígito e transposições adjacentes Instant Nenhum Identificadores internos
Família ISO/IEC 7064 1 ou 2 caracteres Depende do sistema. Instant Nenhum IBAN, identificadores internos
CRC-16 16 bits Rajadas de até 16 bits, distância de Hamming definida por polinômio e comprimento. Muito rápido, suporte de hardware comum Nenhum Modbus RTU, quadros curtos
CRC-32, CRC-32C 32 bits Rajadas de até 32 bits, distância de Hamming definida por polinômio e comprimento. Muito rápido, instruções de hardware Nenhum Ethernet, imagens de firmware, armazenamento
xxHash64, xxHash128 64 ou 128 bits diferenças acidentais Próximo à velocidade de memória Nenhum Desduplicação, detecção de alterações
SHA-256 256 bits Qualquer alteração, para fins práticos. Rápido, com suporte de hardware em várias CPUs. Aproximadamente 128 bits de resistência a colisões Hashes de versão, resumos de firmware, trilhas de auditoria
SHA-3-256, BLAKE2, BLAKE3 256 bits ou mais Qualquer alteração, para fins práticos. Rápido Mesma classe que SHA-256 Alternativas ao SHA-256
HMAC-SHA-256, CMAC 128 a 256 bits Mudança e origem Rápido Depende do sigilo da chave. Mensagens autenticadas
ECDSA, assinatura Ed25519 64 bytes típicos Mudança e origem Assinatura mais lenta, verificação mais rápida Robusto enquanto a chave privada permanece protegida. Firmware, registros, certificados
Reed-Solomon Redundância de aproximadamente 10 a 30 por cento dos dados Detecta e corrige Moderado Nenhum Código QR, Data Matrix, armazenamento

17. Projeto e engenharia

Os checksums são inseridos no produto antes da fabricação da primeira parte. Eles fazem parte do processo de lançamento e do modelo de dados.

CAD, desenhos e listas de materiais em versão de lançamento.

Um sistema PLM ou PDM identifica uma versão pela sua revisão. Uma letra de revisão indica qual versão foi liberada. Um hash do pacote liberado indica quais bytes foram liberados. Ambos são armazenados no registro de versão. Dessa forma, qualquer usuário pode verificar o que recebeu, o que elimina uma lacuna deixada pelas letras de revisão: a possibilidade de um arquivo ser substituído ou editado após a liberação.

  • Calcule um resumo SHA-256 para cada arquivo liberado, por exemplo, o modelo STEP, o PDF do desenho e a exportação da lista de materiais.
  • Calcule mais um resumo sobre um manifesto que lista todos os arquivos e seus resumos, de forma que um único valor represente o pacote inteiro.
  • Inclua o resumo do manifesto no registro ECO ou ECN e na transmissão enviada aos fornecedores.
  • Deixe que o portal do fornecedor ou o sistema de produção recalcule e compare os dados após o recebimento.
  • Compare as exportações da lista de materiais (BOM) por meio do hash entre as configurações projetadas e as configurações construídas. Uma discrepância sinaliza uma diferença, e uma revisão conduzida por especialistas a explica.

Prevenção de erros em números de peças e conectores

O projeto determina a facilidade com que erros podem ser cometidos posteriormente. Um dígito verificador nos números de peça detecta erros de digitação em cada ponto de entrada. Formatos de numeração distintos para peças compradas, desenhos e montagens evitam que uma classe seja confundida com outra. Conectores com encaixe específico e formatos de etiquetas assimétricos funcionam com o mesmo princípio no aspecto físico.

Firmware embarcado e dados de calibração

Uma imagem de firmware deve ser autodescritiva e autoverificável. Um layout comum coloca um cabeçalho fixo em um endereço conhecido.

Campo de cabeçalho Propósito
Número mágico Identifica o tipo de imagem e detecta o carregamento do arquivo errado.
Versão de formato Permite que o carregador de inicialização analise os layouts de cabeçalho futuros.
Identificador de produto e hardware Impede a execução de uma imagem válida para outro produto.
Versão do software Suporta rastreabilidade e proteção contra reversão.
Comprimento da imagem Define a região abrangida pelas verificações.
CRC-32 da imagem Detecta corrupção acidental a cada inicialização ou sob demanda.
Resumo ou assinatura SHA-256 Comprova a integridade e a origem antes da primeira execução.
byte de preenchimento definido Mantém as áreas de memória flash não utilizadas determinísticas, para que as compilações sejam reproduzíveis.

Aplique a mesma disciplina aos blocos de calibração e configuração em EEPROM ou memória flash. Armazene um CRC com cada bloco. Defina o que acontece quando a verificação falha: recorrer aos valores padrão, gerar um erro e nunca usar os dados silenciosamente. Mantenha uma cópia redundante e grave os blocos de forma que sobrevivam a uma perda de energia.

Contexto de segurança funcional

As normas de segurança funcional tratam a corrupção de memória e os erros de comunicação como modos de falha que exigem medidas de diagnóstico. A ISO 26262 para veículos rodoviários, a IEC 61508 para sistemas industriais e a IEC 62304 para software de dispositivos médicos exigem que você demonstre como essas falhas são detectadas. Medidas típicas incluem verificações de CRC na memória de código e dados, comunicação protegida com contadores de sequência e armazenamento redundante.

A análise deve indicar a cobertura diagnóstica, ou seja, a porcentagem de falhas detectadas por uma determinada medida. Um CRC de 32 bits não garante automaticamente 99% de cobertura para todo o sistema. A cobertura depende do que o CRC abrange, da frequência com que é executado e do que o sistema faz quando ocorre uma falha.

Proteção mecânica contra erros integrada ao hardware

Os produtos físicos utilizavam a ideia de um cheque muito antes dos computadores. Nesses projetos, o formato da peça representa o valor do cheque.

Conectores codificados: Os conectores M12 vêm com codificação A, B, D e X, portanto, um cabo de sensor não se conecta a uma porta Ethernet. Os conectores D-sub usam um formato trapezoidal pelo mesmo motivo. Conexões para gases medicinais: O sistema de segurança de indexação de pinos posiciona os pinos no garfo em posições diferentes para cada gás, de modo que um cilindro do gás errado não se encaixa. Conectores médicos de pequeno diâmetro: A série ISO 80369 define conectores com geometrias distintas para diferentes aplicações, como enteral e neuroaxial, para evitar conexões incorretas. Bicos de combustível: Em muitos mercados, um bico de diesel é muito grande para um bocal de abastecimento de gasolina. Pinos e dispositivos de localização: Pinos de diferentes diâmetros em um padrão assimétrico permitem que uma peça fique em apenas uma orientação. Calibradores passa/não passa: Um calibrador de plugue permite a aprovação de um furo dentro da tolerância e o rejeita caso contrário. É um teste físico de aprovação ou reprovação, como comparar uma soma de verificação.

Dicas profissionais sobre checksums em engenharia

  • Prevenir primeiro e detectar depois. Utilize a geometria, conectores com encaixe e características assimétricas como controles de prevenção na FMEA do projeto e adicione a verificação eletrônica de identidade como uma segunda camada.
  • Atribua a cada firmware e imagem de calibração um cabeçalho com a versão, o tamanho e o CRC, e especifique o comportamento a ser observado quando a verificação de inicialização falhar. O estado seguro é uma decisão de projeto e não um padrão.

18. Industrialização e fabricação, incluindo como verificar a atualização do firmware.

A industrialização transforma dados de projeto em processos em execução. A maioria dos erros de dados que chegam à produção ocorre aqui: receitas incorretas, modelos de etiquetas errados, limites de teste incompatíveis.

Marcação e prevenção de erros na estação de digitalização

  • Verifique as marcas no ponto de marcação e novamente onde a marca é necessária pela primeira vez. As normas ISO/IEC 15415, 15416 e 29158 definem a classificação.
  • Configure a estação de leitura como um portão. O CLP libera a próxima operação somente quando os testes de decodificação, dígito verificador, formato e valor esperado forem aprovados.
  • Adicione dígitos de verificação aos números de série gerados pela linha, para que a entrada manual nas estações de retrabalho também fique protegida.
  • Registre cada varredura com falha, incluindo a estação, a hora e, quando possível, a imagem do símbolo. Isso alimenta o trabalho do DMAIC no capítulo 20.

Receitas e parâmetros

Receitas de máquinas, programas de torque, cronogramas de soldagem e limites de teste ficam armazenados como arquivos ou linhas de banco de dados. Um conjunto de parâmetros incorreto ou desatualizado cria um defeito silencioso, porque a máquina funciona corretamente com instruções erradas.

Mantenha um registro mestre no MES ou PLM juntamente com seu hash. A cada download de receita e no início de cada lote, o software da estação recalcula o hash da receita ativa e o compara. Uma incompatibilidade bloqueia a produção do lote. Para parâmetros enviados por um barramento para um controlador, adicione um CRC dentro do bloco de dados, para que o controlador receptor não opere com valores corrompidos.

Como verificar se a atualização do firmware está sendo feita no final da linha

A soldagem por fricção é uma etapa do processo, assim como a soldagem ou o aperto com torque. Ela requer um método definido, um critério de aceitação e um registro por número de série. Um programador que reporta sucesso apenas informou que seus comandos foram concluídos.

  1. Programe a imagem com a opção de verificação do programador ativada, caso o dispositivo e a ferramenta a suportem.
  2. Leia as regiões programadas e calcule um SHA-256 ou CRC-32 exatamente sobre as regiões definidas no plano de controle. Compare o resultado com o resumo mestre do registro de liberação.
  3. Trate os dados específicos da unidade em uma etapa separada. O número de série, o endereço MAC e os valores de calibração variam de unidade para unidade. Exclua-os do resumo da imagem completa e verifique-os em relação aos seus próprios registros ou calcule o resumo esperado com os dados da unidade incluídos.
  4. Verifique os bytes de opção, os fuses e os bits de bloqueio. Um aplicativo correto com uma configuração de inicialização incorreta ou sem proteção de leitura é uma unidade defeituosa.
  5. Solicita ao dispositivo em execução a versão do software e o hash da sua própria imagem através do protocolo de aplicação. Muitos produtos calculam o CRC da sua memória flash com um periférico de hardware e o reportam. Isso também testa o caminho de comunicação.
  6. Registre o resultado no MES, associando-o ao número de série da unidade, juntamente com o resumo da imagem e a versão da ferramenta. Não permita que a unidade prossiga sem um registro de aprovação.
  7. Desafie a estação em intervalos definidos com uma amostra sabidamente ruim, por exemplo, uma imagem com um bit invertido. Isso prova que a estação ainda rejeita a amostra.
Método Força Custo de tempo Limites
Verificação do programador Compara o flash com a imagem de origem que acabou de ser escrita. Baixo Não abrange bytes de opção, depende da implementação da ferramenta.
Leia em voz alta e repita na estação. Verificação independente do conteúdo real De médio a alto para imagens grandes, já que a leitura geralmente é mais lenta que a programação. É necessário permitir a leitura em sequência, o que a proteção contra leitura em tempo real pode proibir.
CRC calculado pelo dispositivo e reportado pelo barramento. Rápido e testa o caminho do aplicativo. Baixo Protege apenas contra erros acidentais e depende do firmware que os calcula.
Verificação de assinatura pelo carregador de inicialização na primeira inicialização Comprova integridade e origem. Baixo Aceita uma imagem incorreta, mas assinada corretamente, portanto, combine-a com uma verificação de versão.

Observe a ordem dos passos: uma vez ativada a proteção contra leitura, uma leitura posterior será impossível. Primeiro verifique, depois bloqueie e, por fim, verifique se o bit de bloqueio está definido.

Registros da estação de teste e das ferramentas

Os resultados dos testes de torque, inspeção visual, vazamento e elétricos são considerados provas comerciais e, por vezes, legais. Registros armazenados em arquivos ou linhas simples podem ser alterados ou perdidos sem deixar rastro.

  • Calcule um hash de registro com base no número de série, estação, hora, resultado e valores medidos.
  • Escreva registros em um armazenamento somente para anexação ou encadeie-os conforme descrito no capítulo 13, com ancoragem periódica.
  • Sincronize os relógios das estações com uma fonte de tempo confiável, para que os registros de data e hora tenham algum significado.

Comunicação máquina a máquina

O OPC UA oferece assinatura e criptografia de mensagens por meio de seus modos de segurança Sign e SignAndEncrypt. Utilize-os entre estações, PLCs e o MES. A segurança de transporte protege os dados em trânsito. Ela não substitui as verificações em nível de aplicação sobre parâmetros críticos, que devem sobreviver ao armazenamento, conversão e exportação.

Dispositivos de estação que tornam o processo à prova de erros

Algumas medidas físicas funcionam como um checksum. O peso de um kit, por exemplo, é uma propriedade redundante que deve corresponder ao valor esperado.

Dispositivo O que verifica Parada brusca típica
Scanner de montagem fixa ou leitor de visão Conteúdo decodificado da etiqueta ou marca em relação à ordem de serviço. Intertravamento PLC que mantém o transportador
Controlador de torque e ângulo com identificação de fixação O programa certo para a articulação certa, com torque e ângulo dentro da janela. A ferramenta ficará desativada até que o programa correto esteja ativo.
Balança de verificação Massa do conjunto ou kit em comparação com a massa esperada. Rejeitar portão por peça em falta ou extra
Sensores de presença de peças e dispositivos de fixação com chave Presença, tipo e orientação da peça Início do ciclo não liberado
Dispositivo programável com função de leitura Resumo da região programada lida diretamente do dispositivo Unidade marcada como defeituosa e encaminhada para reparo.
Indicador de passa/não passa ou medidor de ar Tolerância dimensional interna Parte segregada automaticamente ou pelo operador
Verificação de imagem
Implementar verificação segura de imagens para atualizações de produtos.

Dicas profissionais

  • Permita que a estação carregue uma imagem somente por revisão do servidor de distribuição e verifique seu hash ou assinatura antes de gravar a imagem. Recuse qualquer imagem que não corresponda à ordem de serviço.
  • Configure cada desvio de um bloqueio físico atrás de uma chave seletora ou de um login autorizado e monitore a contagem de desvios por linha e turno. Uma contagem crescente indica um controle fraco antes que uma saída seja eficaz.

19. Gestão da qualidade e conformidade

Os sistemas de qualidade exigem resultados que os checksums ajudam a alcançar: identificação, rastreabilidade, documentos controlados e registros confiáveis. As normas raramente mencionam checksums. Elas mencionam resultados, e uma verificação é uma forma de comprovar um resultado.

Framework Requisito relevante Como um checksum o suporta
ISO 9001:2015 Cláusula 8.5.2 sobre identificação e rastreabilidade e controle de informações documentadas Dígitos de verificação em identificadores, hashes de documentos controlados
IATF 16949 Rastreabilidade, prevenção de erros, planos de controle, PPAP Poka-yoke com dígitos de verificação e verificação, hashes em pacotes de dados PPAP
AS9100 Gestão de configuração, identificação de produtos, prevenção de peças falsificadas Liberar hashes para linhas de base de configuração e autenticação de peças.
ISO 13485:2016 Rastreabilidade (cláusula 7.5.9), UDI, validação de software Dígitos de verificação UDI, verificação validada de etiquetas e firmware.
21 CFR Parte 11 e Anexo 11 da UE Registros eletrônicos, trilhas de auditoria, assinaturas eletrônicas Hash chain sobre o histórico de auditoria, assinatura de registros
ESPORTE 5 Validação de sistemas informatizados baseada em risco Validação da própria função de verificação

Integridade de dados e ALCOA+

Os órgãos reguladores descrevem a integridade dos dados com os princípios ALCOA: atribuível, legível, contemporâneo, original e preciso. O ALCOA+ estendido adiciona os princípios de completude, consistência, durabilidade e disponibilidade. Um checksum corresponde a alguns desses princípios. Ele demonstra que um registro é preciso e não sofreu alterações desde a sua criação. Uma cadeia de hash demonstra que os registros estão completos e em ordem.

Um checksum não mostra quem criou um registro nem quando. Ele complementa o registro de auditoria e o controle de acesso, e não os substitui.

Rastreabilidade e prontidão para recall

A rastreabilidade depende de identificadores que permaneçam corretos desde o recebimento do componente até o envio. Dígitos de verificação mantêm os identificadores corretos à medida que passam por scanners e teclados. A genealogia vincula números de lote, partida e série em todos os níveis, um passo acima e um passo abaixo.

Meça a prontidão com um recall simulado. A métrica é o tempo decorrido desde um gatilho, por exemplo, um número de lote do fornecedor, até a obtenção da lista completa das unidades acabadas afetadas e suas respectivas localizações. Falhas em verificações e identificadores duplicados são motivos típicos pelos quais um recall simulado leva dias em vez de horas.

Calibração
Implementar processos robustos de verificação para calibração e dados de fornecedores no projeto e engenharia de produtos.

Dados de calibração, equipamentos de teste e fornecedores

  • Vincule os certificados de calibração aos identificadores de equipamentos que contenham um dígito verificador e mantenha um hash de cada arquivo de certificado.
  • Para certificados de fornecedores, como Certificado de Conformidade (CoC), Certificado de Análise (CoA) e relatórios de testes de materiais, solicite arquivos assinados ou dados estruturados. Compare automaticamente o número do lote e o número da peça com o pedido de compra e o registro de recebimento.
  • Para arquivos CAD de fornecedores, firmware e programas de teste, verifique o resumo (digest) comparando-o com o documento de transmissão antes que alguém utilize o arquivo.

Bônus: validar o próprio cheque

Em ambientes regulamentados, a função de verificação faz parte de um sistema informatizado e precisa ser validada de acordo com os princípios do GAMP 5. Planeje a qualificação de instalação, operacional e de desempenho (QI, QO e QP) proporcionalmente ao risco.

O OQ deve incluir testes negativos. Alimente o verificador com dados inválidos e comprove que ele rejeita os resultados. Mantenha os vetores de teste no arquivo de validação e execute-os novamente após qualquer alteração no software, firmware do leitor ou modelos de etiquetas.

Dica: vValide a verificação como parte do processo. Inclua testes negativos, armazene os vetores de teste no arquivo de validação e execute-os novamente após qualquer alteração no firmware do scanner, impressora, biblioteca ou sistema operacional.

20. A perspectiva Lean Six Sigma

Poka-yoke
A integração de poka-yoke e jidoka aprimora o design do produto, garantindo qualidade intrínseca e prevenção de erros nos processos de engenharia.

Poka-yoke e jidoka

Muitas semelhanças com os checksums: Shigeo Shingo formalizou o poka-yoke, ou à prova de erros, enquanto trabalhava com a Toyota. Ele separou as funções de controle, que tornam o erro impossível ou interrompem o processo, das funções de aviso, que apenas o sinalizam. Jidoka, qualidade integrada, adiciona a parada: a máquina para quando detecta uma anormalidade.

Um dígito verificador com um ponto de parada rígido em uma estação de leitura é uma função de controle. Uma falha de leitura que permite que a unidade prossiga mesmo assim é apenas um aviso. Audite suas estações para identificar exatamente essa diferença.

FMEA

Avalie honestamente a detecção de cada controle. Uma verificação com parada obrigatória, testada com amostras sabidamente defeituosas e que abrange a causa da falha, recebe uma classificação melhor do que a mesma verificação que os operadores podem ignorar. Registre as evidências na PFMEA.

O método de priorização de ações da AIAG-VDA também incentiva a melhoria da prevenção em primeiro lugar. Prevenção, neste contexto, significa projetar o processo de forma que dados incorretos não possam surgir, por exemplo, gerando identificadores e rótulos a partir de uma única fonte em vez de digitá-los manualmente.

DMAIC aplicado a erros de dados

Fase Atividade Exemplo com produtos rotulados incorretamente
Definir Problema, escopo, característica crítica para a qualidade Rótulos incorretos chegaram ao cliente A nos últimos 12 meses. O requisito crítico de qualidade (CTQ) é que o conteúdo do rótulo corresponda ao produto em 100% das unidades.
Medir Sistema de referência e medição Contabilize os defeitos por milhão de etiquetas e execute uma análise de concordância de atributos do verificador em relação a uma referência.
Analisar Causas principais Diagrama de Pareto das causas: versão do modelo, alterações de rolo, entrada manual, reimpressões
Melhorar Controles Verificação de hash de modelo, digitalização para correspondência, serviço serial central, verificação de dígitos onde a digitação permanece.
Control Mantenha o ganho Gráfico de controle da taxa de falhas de escaneamento, plano de controle, auditorias, plano de reação

The defects per million opportunities follow from the number of defects [latex]D[/latex], the units [latex]N[/latex] and the opportunities per unit [latex]O[/latex]. The sigma level adds the conventional 1.5 sigma shift to the normal quantile.

[latex]\displaystyle \mathrm{DPMO} = \frac{D}{N \times O} \times 10^{6}[/latex]

[latex]\displaystyle \sigma_{\mathrm{level}} = \Phi^{-1}\left(1 – \frac{\mathrm{DPMO}}{10^{6}}\right) + 1.5[/latex]

A worked example with illustrative numbers shows the arithmetic. 36 wrong-label defects in 480,000 labels, counting one opportunity per label, give [latex]\mathrm{DPMO} = 36 / 480000 \times 10^{6} = 75[/latex]. With the conventional 1.5 sigma shift, that is a sigma level of about 5.3. After the improvements, 6 defects in the next 480,000 labels give 12.5 per million and about 5.7 sigma. The figures illustrate the calculation. They are not a benchmark.

Análise do sistema de medição e CEP (Controle Estatístico de Processo)

Considere os scanners e verificadores como sistemas de medição. Os verificadores precisam de calibração rastreável a um padrão de conformidade. Para dados de aprovação ou reprovação, execute uma análise de concordância de atributos entre operadores, scanners e uma referência, para quantificar a concordância e o viés.

Em seguida, monitore com gráficos de controle. Um gráfico p é adequado para a proporção de falhas na primeira leitura por lote. Um gráfico u é adequado para defeitos por unidade. Uma taxa crescente de falhas na primeira leitura geralmente indica desgaste da cabeça de impressão, desgaste da fita ou alteração do substrato muito antes que as notas de verificação caiam abaixo do limite.

Desperdício e retorno do investimento

Data errors create classic wastes: defects, rework, waiting for corrected data, motion to find the right item, and excess inventory held as a buffer against bad data. A simple model sums, over all stages [latex]s[/latex], the number of errors [latex]n_s[/latex] times the cost per error [latex]c_s[/latex].

[latex]\displaystyle C_{\mathrm{total}} = \sum_{s} n_s c_s[/latex]

Compare esse valor com o custo de implementação, que consiste principalmente em configuração de software, hardware de scanner e verificador e treinamento.

Calcule o custo por erro com base na sua própria contabilidade de custos. A diferença entre um erro detectado na impressora e um erro detectado no cliente é significativa.

Exemplo de plano de controle

Característica Método Freqüência Aceitação Plano de reação
Identidade do modelo de etiqueta Hash comparado com o registro de lançamento Todo emprego começa Corresponder Bloqueie a tarefa e notifique a engenharia.
Qualidade de impressão do símbolo Verificador embutido 100%, ou uma amostra por lote, se o risco permitir. Nota igual ou superior ao mínimo especificado Rejeite a etiqueta, verifique a cabeça de impressão e a fita.
Conteúdo da etiqueta em relação ao registro da unidade Digitalize e compare 100% correspondência exata Separe a unidade, investigue a função e os dados.
Resumo do firmware Hash de leitura 100% no final da linha Combine com o digestivo dourado. Reinstale o firmware uma vez, depois descarte o produto e encontre a causa raiz.
Saúde da função de verificação desafio sabidamente ruim Cada turno A rejeição é registrada. Pare a linha de produção, recalibre ou repare.
Rastreabilidade Simulação de recall do lote para as unidades Anualmente ou por plano de auditoria Tempo previsto cumprido Preencher as lacunas nos dados genealógicos

Três famílias de dispositivos poka-yoke

Shingo agrupou os métodos à prova de erros em três famílias. Cada uma delas possui uma contraparte entre as verificações deste guia:

Método de contato
Detecta forma, tamanho ou cor por tato ou por um sensor, como por exemplo, um interruptor de limite ou um dispositivo com chave. O equivalente em dados é um teste de formato ou de dígito verificador.
Método de valor fixo
Sinaliza um erro quando um número definido de peças ou movimentos não é atingido, por exemplo, uma bandeja com posições contadas. O equivalente em dados é um campo de comprimento ou uma contagem de segmentos.
Método de passo de movimento
Verifica se as etapas ocorrem na sequência correta, por exemplo, um bloqueio que impede uma etapa de ser concluída até que a anterior seja finalizada. O equivalente em dados é um número de sequência ou um fluxo de trabalho de leitura e liberação.

Pontas

  • Integre os dados de rejeição das estações de verificação ao CEP (Controle Estatístico de Processo), por exemplo, um gráfico de controle por linha, com subgrupos por turno, impressora ou dispositivo. Uma taxa de rejeição estável ainda pode ocultar um ciclo de retrabalho que consome capacidade.
  • Considere uma rejeição na verificação como um defeito da etapa anterior do processo e não como um sucesso da verificação. Atribua a causa e feche o ciclo na origem.

21. Logística: como reduzir erros de separação de pedidos em armazéns

Os erros de separação de pedidos estão entre as falhas mais dispendiosas na logística, impulsionadas por dados. Cada um deles inicia uma cadeia de devoluções, reenvios e reclamações.

Identificação GS1

O GTIN identifica um produto em um determinado nível de embalagem. O SSCC identifica uma unidade logística, como um palete, e possui 18 dígitos. O GLN identifica uma localização ou uma parte interessada. O GRAI identifica ativos retornáveis. Todos possuem um dígito verificador, e o padrão de etiqueta logística GS1 define como eles aparecem nas unidades.

prevenção de erros baseada em varredura

  1. Primeiro, faça a leitura da etiqueta do local. A verificação do dígito e a validação do formato detectam imediatamente um código de localização inválido, e o WMS confirma que se trata do local esperado.
  2. Escaneie o GTIN do item ou da caixa. O sistema compara com a tarefa de separação e rejeita o item incorreto antes da entrada da quantidade.
  3. Confirme a quantidade por contagem de leituras ou por verificação de peso, quando a leitura de cada peça for impraticável.
  4. Ao fechar a unidade, faça o escaneamento do contêiner de destino ou do SSCC e vincule o conteúdo a ele.
  5. No momento do carregamento, verifique se os SSCCs estão comparados com o manifesto de remessa.
Causa do erro de seleção Remédio típico
Itens de aparência semelhante em espaços adjacentes Escanear para confirmar o GTIN, regras de encaixe
Digitação manual de códigos de localização ou de item. Remova o teclado do processo e use dígitos de verificação quando a digitação for inevitável.
Confusão de unidade de medida (cada, embalagem interna, caixa) GTINs distintos por nível de embalagem, utilizando o dígito indicador GTIN-14.
Etiquetas danificadas ou ilegíveis Verificação na etiquetagem, códigos 2D com correção de erros, estação de reetiquetagem
Erros nos dados mestres Valide os dígitos de verificação do GTIN na importação e compare-os com os dados de origem do fornecedor.
SSCC duplicado Alocação central e uma restrição de unicidade

Quantify accuracy as defects per million lines picked. A line accuracy of 99.9 percent sounds high, yet it equals [latex](1 – 0.999) \times 10^{6} = 1000[/latex] errors per million lines, far from six sigma. State targets in DPMO, so that they connect to your Lean Six Sigma metrics.

integridade das mensagens EDI, ASN e EPCIS

As mensagens comerciais contêm campos de integridade próprios. Os padrões EDI incluem números de controle e contagens de segmentos, por exemplo, nos segmentos de fechamento de uma mensagem EDIFACT ou de um conjunto de transações X12. O destinatário os utiliza para detectar dados truncados ou perdidos. Os eventos EPCIS contêm os identificadores das unidades envolvidas, e o valor do evento depende dos dígitos de verificação e da unicidade desses identificadores.

Valide a mensagem recebida nesta ordem: contagens de controle, dígitos de verificação e formatos do identificador e, em seguida, regras de negócio, como um ASN (Aviso Prévio de Expedição) correspondente ao pedido de compra. Rejeite ou coloque em quarentena as mensagens com falha e monitore a taxa de rejeição por parceiro comercial.

Serialização em cadeias reguladas

As cadeias de distribuição farmacêutica e de dispositivos médicos estão implementando novas regras de serialização. Nos Estados Unidos, a Lei de Segurança da Cadeia de Suprimentos de Medicamentos (Drug Supply Chain Security Act) exige um identificador de produto com NDC, número de série, lote e data de validade em uma matriz de dados 2D em cada embalagem. Os requisitos aprimorados de segurança na distribuição entraram em vigor em etapas. A data original era 27 de novembro de 2023, um período de estabilização terminou em 27 de novembro de 2024, e o FDA concedeu isenções a pequenos distribuidores até 27 de novembro de 2026.Aviso de isenção da FDA).

Resumos de escritórios de advocacia relatam que a FDA estendeu certas isenções para pequenos dispensadores até 27 de novembro de 2027 em agosto de 2026 (Resumo de BuchananConsulte o site da FDA para obter informações atualizadas.

Na UE, a Diretiva sobre Medicamentos Falsificados impõe um identificador único e um dispositivo inviolável nas embalagens. O UDI para dispositivos médicos segue a mesma lógica. Agências emissoras, como a GS1, definem a estrutura do identificador, e o dígito verificador o valida.

Cadeia de frio e dados da IoT

Registradores de temperatura e sensores de IoT fornecem evidências de que uma remessa permaneceu dentro dos limites. Escolha dispositivos que armazenem leituras com um CRC ou assinatura e prefira downloads assinados. Proteja o transporte com criptografia autenticada. Sem essas medidas, um arquivo de registro é apenas uma planilha editável.

Combate à falsificação e rastreamento

Um número de série com um dígito verificador válido é fácil de falsificar. O rastreamento adiciona um registro no servidor de quais números de série foram emitidos e onde foram visualizados. Um número de série repetido em dois locais diferentes, ou um número de série que nunca foi emitido, é o sinal de alerta. Para bens de alto valor, adicione uma assinatura ou um elemento de segurança, conforme descrito no capítulo 14.

Blockchain e registros distribuídos

Os registros distribuídos podem ancorar os hashes dos eventos da cadeia de suprimentos, de forma que ninguém possa alterar o histórico sem que ninguém perceba. Eles não verificam se um evento realmente ocorreu ou se o item escaneado era o item genuíno. Dados incorretos permanecem incorretos, agora com um registro de data e hora permanente.

Uma cadeia hash assinada com ancoragem externa fornece a evidência de adulteração que a maioria das instalações precisa, sem a sobrecarga operacional. Considere um livro-razão compartilhado somente quando várias partes que não confiam umas nas outras precisarem de um registro comum.

 

Exemplos de dispositivos e ferramentas para armazéns

  • Fones de ouvido para coleta por voz: o sistema solicita ao operador que diga os dígitos de verificação exibidos no local de coleta. Um local incorreto é rejeitado antes que qualquer item seja coletado.
  • Módulos de separação por luz e de armazenamento por luz: uma luz e um visor de quantidade indicam a localização do item, e o operador confirma com um botão. Adicione um recurso de leitura de código de barras para itens que a separação incorreta seja custosa.
  • Leitores de código de barras portáteis e de anel: escaneiam para confirmar a localização, o item e o SSCC da etiqueta do palete.
  • Estações de pesagem e dimensionamento: o peso medido é comparado com os dados mestres, de modo que um item incorreto ou uma caixa danificada seja sinalizada.
  • Portais RFID nas docas de carga e descarga: as etiquetas lidas dentro de um palete são comparadas com o aviso prévio de embarque.

22. Assistência técnica, mercado pós-venda e fim de vida útil

Atualizações via rádio
Processos robustos de atualização no projeto do produto garantem segurança e confiabilidade por meio de defesas em camadas contra possíveis falhas.

Atualizações via rádio e em campo

Um processo de atualização pode falhar de três maneiras: a transferência pode estar corrompida, a imagem pode ser inadequada para o dispositivo ou a imagem pode ser maliciosa. Implemente defesas em camadas para lidar com essas falhas.

  • Um CRC por bloco ou por fragmento detecta erros de transferência precocemente.
  • Um hash da imagem completa, verificado antes da instalação, confirma que ela está íntegra.
  • Uma verificação de assinatura em relação a uma chave pública armazenada no dispositivo confirma a origem.
  • A correspondência entre o identificador do produto e o identificador do hardware impede a instalação de uma imagem destinada a outro dispositivo.
  • Uma verificação de versão com proteção contra reversão impede o downgrade para versões vulneráveis.
  • Partições duplas com confirmação de inicialização permitem que a imagem antiga seja executada caso a nova falhe.

Peças de reposição, garantia e devoluções

  • Os números de peça de reposição contêm um dígito verificador, e os formulários online para registro de garantia o validam, o que expõe erros de digitação na origem.
  • Os números de série vinculam uma falha em campo à genealogia da produção, incluindo o resumo do firmware registrado no final da linha de produção.
  • A logística reversa precisa dos mesmos identificadores e das mesmas verificações que o fluxo direto.

Passaporte de Produto Digital

O Regulamento (UE) 2024/1781 relativo à conceção ecológica de produtos sustentáveis, entrou em vigor em 18 de julho de 2024 e introduziu o Passaporte Digital do Produto: um passaporte que associa dados padronizados do ciclo de vida a um suporte de dados no produto, geralmente um código QR.

A Comissão Europeia lançou o registo DPP com um ambiente de teste em 20 de julho de 2026. O primeiro passaporte obrigatório aplica-se a determinadas baterias a partir de 18 de fevereiro de 2027, ao abrigo do Regulamento da UE sobre Baterias. Outros grupos de produtos seguirão à medida que os atos delegados forem adotados. Consulte o Página da Comissão sobre baterias e o anúncio de registro.

As consequências para a integridade dos dados são diretas. O identificador único do produto deve permanecer único, persistente e correto durante todo o ciclo de vida do produto, o que justifica um dígito verificador e um processo de alocação central. Os dados do passaporte devem ser verificáveis, o que aponta para hashes dos documentos subjacentes e assinaturas do operador econômico. O suporte de dados também deve permanecer legível, o que nos leva de volta à qualidade da marcação e à correção de erros.

23. Corrupção acidental versus corrupção maliciosa

A verificação correta depende de quem ou do que causa o erro. Ruído, desgaste e erros humanos são aleatórios. Um atacante ou falsificador não é, e escolhe a única modificação que sua verificação não consegue detectar.

Ameaça Exemplo Cheques que ajudam Verificações que não ajudam
Erro acidental Inversão de bit, dígito digitado incorretamente, download parcial Dígito verificador, CRC, hash Nenhuma outra é necessária além destas.
Modificação deliberada Firmware editado, registro de teste alterado Assinatura, HMAC CRC, hash simples, dígito verificador
Substituição Peça falsificada com número de série copiado Etiqueta de autenticação, rastreamento dígito de verificação
Repetição Mensagem antiga válida enviada novamente Contador de sequência ou carimbo de data/hora coberto por um MAC Qualquer soma de verificação estática
Reverter Firmware antigo, assinado, porém vulnerável, reinstalado. Verificação de versão com contador anti-rollback Somente a assinatura

Ataques de colisão são relevantes sempre que duas partes confiam em um resumo de um arquivo preparado por uma delas. MD5 e SHA-1 falham nesse teste. Para autenticação de mensagens, use HMAC e nunca um hash com prefixo secreto, devido ao aumento do comprimento.

Cibersegurança e regulamentação industrial

A série IEC 62443 define um requisito fundamental para a integridade do sistema. Ela abrange a integridade da comunicação e a integridade do software e da informação em sistemas de automação e controle industrial. Verificações de firmware, configuração e receitas são evidências diretas disso.

A Lei de Ciber-Resiliência da UE, Regulamento (UE) 2024/2847, entrou em vigor em 10 de dezembro de 2024. As obrigações de notificação de vulnerabilidades ativamente exploradas e incidentes graves aplicam-se desde 11 de setembro de 2026, inclusive a produtos já comercializados. A primeira notificação deve ser feita em até 24 horas após o fabricante tomar conhecimento do incidente. A aplicação completa, com os requisitos essenciais e a marcação CE, entra em vigor em 11 de dezembro de 2027. As multas por descumprimento das obrigações de notificação podem chegar a 15 milhões de euros ou 2,5% do faturamento anual mundial. Resumo por Matheson Abrange a linha do tempo.

Os requisitos essenciais incluem a proteção da integridade de dados, programas e configurações contra modificações não autorizadas, bem como mecanismos de atualização seguros. Firmware assinado e atualizações verificadas tornam-se, portanto, uma questão de conformidade e não apenas uma preferência de engenharia. A Diretiva NIS2 (UE) 2022/2555 adiciona obrigações de segurança e de reporte para muitos fabricantes de máquinas, equipamentos elétricos, veículos e dispositivos médicos.

Falsificações, mercado cinza e ataques à cadeia de suprimentos

  • Produtos falsificados copiam rótulos e números de série. A defesa é a autenticação com um dígito secreto, não um dígito verificador melhorado.
  • Produtos do mercado cinza são genuínos, mas desviados. Regras de rastreamento que sinalizam um número de série visto em uma região incorreta os denunciam.
  • Os ataques à cadeia de suprimentos visam o servidor de compilação, o canal de atualização ou o firmware dos componentes dos fornecedores. Utilize compilações assinadas, mantenha uma lista de materiais de software com seus respectivos resumos (digests) e verifique os resumos do firmware do fornecedor por meio de um canal secundário.

24. Como escolher o dígito verificador correto

Comece pela ameaça, depois pelo tipo de dados e, por fim, pelas restrições. Responda às perguntas em ordem e pare no primeiro mecanismo que se encaixar; em seguida, adicione o próximo se a resposta para uma pergunta posterior também for sim.

  1. Alguém poderia alterar os dados deliberadamente e se beneficiar disso? Se sim, use uma assinatura digital ou um HMAC. Mantenha um CRC ou hash apenas para erros acidentais.
  2. A pessoa digita, lê ou escaneia o valor? Em caso afirmativo, utilize um dígito verificador no identificador, validação no leitor e marcas 2D com correção de erros para evitar danos físicos.
  3. Os dados trafegam por um barramento ou ficam armazenados em uma pequena área de memória? Se sim, utilize um CRC com um polinômio escolhido de acordo com o comprimento da mensagem e a distância de Hamming necessária. Adicione um CRC de ponta a ponta para os parâmetros críticos.
  4. É necessário que um arquivo ou registro seja idêntico a uma referência? Em caso afirmativo, use SHA-256 para a comparação. Um hash rápido e não criptográfico é suficiente para comparações não críticas.
  5. Os dados devem sobreviver a danos sem uma nova tentativa? Se sim, adicione um código de correção de erros.
  6. Os dados fazem parte de um registro regulamentado? Em caso afirmativo, adicione uma trilha de auditoria, validação e uma justificativa documentada para o método escolhido.
Dados ou estágio Risco Abordagem recomendada
Números de peça e séries digitados por pessoas Médio Dígito verificador Damm, Verhoeff ou ISO/IEC 7064. Dígito GS1 para chaves GS1.
Rótulos e marcas Médio a alto Verificação segundo as normas ISO/IEC 15415, 15416 ou 29158, símbolos 2D com correção de erros, hash de modelo.
Dados de barramento de campo e sensores Médio Protocolo CRC com distância de Hamming adequada ao comprimento, protocolo de segurança quando necessário.
Receitas e parâmetros Alto Hash contra o registro de ouro, mais um CRC no bloco de transferência
Pacotes CAD e de lançamento Médio Manifesto SHA-256 armazenado no registro de liberação
Firmware e atualizações Alto Assinatura e SHA-256 para liberação, CRC para verificações em tempo de execução.
Registros regulamentados Alto Hash chain ou assinatura com trilha de auditoria, validada
Identificadores e mensagens logísticas Médio Dígitos de verificação GS1, totais de controle de mensagens, validação de regras de negócios
Comparação e desduplicação em massa Baixo xxHash com uma comparação completa na correspondência

Dicas para a tomada de decisão

  • Mantenha um registro de decisões para cada objeto de dados: modelo de erro, transportadora, orçamento de tamanho, vida útil e proprietário. Revise-o em cada etapa do projeto e sempre que a cadeia de suprimentos ou a ameaça mudar.
  • Os testes de candidatos incluem a injeção de erros que correspondem a modos de falha reais: inversão de bits, transposição de dígitos, truncamento e arquivo incorreto. Meça a taxa de detecção em vez de confiar apenas na teoria.

25. Guia de implementação

Três regras evitam grande parte dos problemas. Use uma biblioteca testada ou uma implementação única e compartilhada. Defina todos os parâmetros em um documento controlado. Teste com vetores publicados antes da primeira execução em produção. O Apêndice B contém os vetores usados ​​abaixo.

dígito verificador GS1 em Python

def gs1_check_digit(body: str) -> int:
    if not body.isdigit():
        raise ValueError('digits only')
    total = sum(int(d) * (3 if i % 2 == 0 else 1)
                for i, d in enumerate(reversed(body)))
    return (10 - total % 10) % 10

def gs1_is_valid(full: str) -> bool:
    return (full.isdigit() and len(full) > 1
            and gs1_check_digit(full[:-1]) == int(full[-1]))

assert gs1_check_digit('400638133393') == 1
assert gs1_check_digit('34012345000000001') == 7
assert gs1_is_valid('4006381333931')

Dígito verificador GS1 no Excel

Para um GTIN-13 com 12 dígitos armazenado como texto na célula A1, esta fórmula retorna o dígito verificador.

=MOD(10-MOD(SOMAPRODUTO(--MID(A1,{1,3,5,7,9,11},1))+3*SOMAPRODUTO(--MID(A1,{2,4,6,8,10,12},1)),10),10)

Armazene identificadores como texto, nunca como números. O Excel mantém apenas 15 dígitos significativos em um número; portanto, um SSCC de 18 dígitos armazenado como número perde seus últimos dígitos. Ele também descarta zeros à esquerda, o que corrompe os valores GTIN-12 e GTIN-8.

dígito verificador GS1 em SQL

Esta consulta utiliza uma expressão de tabela comum recursiva. Ela foi testada no SQLite e retorna 1 para o corpo GTIN-13 e 7 para o corpo SSCC usado acima. Adapte a sintaxe ao dialeto do seu banco de dados.

COM RECURSIVE d(i, n) AS ( SELECT 1, LENGTH('400638133393') UNION ALL SELECT i + 1, n FROM d WHERE i < n ) SELECT (10 - (SUM(CAST(SUBSTR('400638133393', i, 1) AS INTEGER) * CASE WHEN (n - i) % 2 = 0 THEN 3 ELSE 1 END) % 10)) % 10 AS check_digit FROM d;

Dígito verificador GS1 em texto estruturado PLC

Esta função segue as funções de string da norma IEC 61131-3. Os fornecedores diferem em detalhes como os nomes de conversão de strings, portanto, execute-a com os vetores do Apêndice B em seu próprio ambiente de execução.

FUNÇÃO GS1_CheckDigit : INT VAR_INPUT sBody : STRING(17); END_VAR VAR i, n, iSum : INT; END_VAR n := LEN(sBody); iSum := 0; PARA i := 1 ATÉ n FAÇA SE ((n - i) MOD 2) = 0 ENTÃO iSum := iSum + 3 * STRING_TO_INT(MID(sBody, 1, i)); SENÃO iSum := iSum + STRING_TO_INT(MID(sBody, 1, i)); FIM_SE FIM_PARA GS1_CheckDigit := (10 - (iSum MOD 10)) MOD 10;

CRC-32 em C

A versão bit a bit é a mais curta e fácil de auditar. Ela foi compilada e testada em relação ao vetor da string ASCII 123456789. O código de produção geralmente utiliza uma tabela ou um periférico de hardware.

uint32_t crc32_update(uint32_t crc, const uint8_t *data, size_t len) { while (len--) { crc ^= *data++; for (int bit = 0; bit > 1) ^ (0xEDB88320u & (0u - (crc & 1u))); } } return crc; } /* Comece com 0xFFFFFFFF, alimente cada bloco, termine com um XOR final: crc = 0xFFFFFFFFu; crc = crc32_update(crc, buffer, length); crc ^= 0xFFFFFFFFu; O resultado para a string ASCII 123456789 é 0xCBF43926. */

Modbus CRC-16 e streaming SHA-256 em Python

import hashlib

def crc16_modbus(data: bytes) -> int:
    crc = 0xFFFF
    for byte in data:
        crc ^= byte
        for _ in range(8):
            crc = (crc >> 1) ^ 0xA001 if crc & 1 else crc >> 1
    return crc

frame = bytes([0x01, 0x03, 0x00, 0x00, 0x00, 0x0A])
crc = crc16_modbus(frame)
wire = frame + bytes([crc & 0xFF, crc >> 8])   # low byte first

def sha256_file(path, chunk=1024 * 1024):
    h = hashlib.sha256()
    with open(path, 'rb') as f:
        for block in iter(lambda: f.read(chunk), b''):
            h.update(block)
    return h.hexdigest()

O fio variável contém 01 03 00 00 00 0A C5 CD. A função de streaming lê o arquivo em partes, portanto, lida com imagens de qualquer tamanho com memória constante. Para experimentar com checksums de strings hexadecimais e ASCII, tente o Calculadora de soma de verificação hexadecimal e ASCII neste site.

Armadilhas nas implementações de checksum

Armadilha O que acontece Contramedida
Ordem dos bytes O Modbus envia primeiro o byte menos significativo do CRC. Bytes trocados falham a cada quadro. Verificar comparando com um quadro capturado de um dispositivo real.
Valor inicial e reflexão Um conjunto de parâmetros diferente produz um CRC plausível, porém incorreto. Corrija todos os seis parâmetros CRC na especificação da interface.
Texto versus bytes As quebras de linha, a codificação do texto e os espaços em branco à direita alteram um resumo. Calcule o hash exato dos bytes armazenados e defina a normalização caso haja texto envolvido.
Tipos numéricos para identificadores Em ponto flutuante, zeros à esquerda desaparecem e números longos perdem dígitos. Armazene identificadores como strings em arquivos Excel, CSV, bancos de dados e dados de PLC.
Carregando arquivos inteiros na memória. Imagens grandes esgotam a RAM da estação. Hash em pedaços
Cobertura indefinida O resumo inclui campos voláteis, como números de série. Defina as regiões exatas e exclua ou corrija dados específicos da unidade.
Bibliotecas não verificadas Um bug silencioso passa em todos os testes que você não escreveu. Execute os vetores publicados no pipeline de compilação.

26. Lista de verificação de melhores práticas por função

P&D e design

  • Defina um dígito verificador e um formato fixo em cada esquema de identificação, começando com o primeiro esboço do conceito de numeração.
  • Atribua às imagens de firmware um cabeçalho com número mágico, versão, comprimento, CRC e assinatura, e especifique o comportamento em caso de falha.
  • Documente os parâmetros CRC e a justificativa para o polinômio na especificação da interface.
  • Armazene os hashes dos pacotes liberados no registro de liberação e nas transmissões do fornecedor.
  • Inclua na análise de segurança uma cobertura diagnóstica de verificações de memória e comunicação.

Fabricação

  • Execute estações de varredura e flash como portões com paradas obrigatórias e registre cada desvio.
  • Verifique o firmware por meio de leitura ou por um resumo (digest) relatado pelo dispositivo e registre o resultado para cada número de série.
  • Compare as receitas ativas com o hash dourado no início de cada lote.
  • Em cada turno, teste cada amostra com uma amostra sabidamente ruim.
  • Mantenha os verificadores e scanners calibrados e em bom estado de conservação.
Detecção FMEA
Implementar processos robustos de garantia da qualidade para aumentar a confiabilidade do produto por meio de testes e validação sistemáticos.

Qualidade

  • Avalie a detecção de FMEA a partir de evidências, como resultados de testes de desafio e registros de desvio.
  • Valide as verificações e mantenha os vetores de teste no arquivo de validação.
  • Realize simulações de recall e acompanhe o tempo até a lista de unidades afetadas.
  • Analise as taxas de falha na digitalização e os graus de verificação do gráfico e tome medidas com base nas tendências.
  • Comparação automática de certificados de fornecedores com pedidos de compra e dados de recebimento.
  •  

Logística

  • Escaneie o código QR para confirmar a localização, o item e o contêiner em cada coleta.
  • Validar identificadores e mensagens no recebimento e monitorar a taxa de rejeição por parceiro comercial.
  • Alocar SSCCs de forma centralizada e garantir a unicidade.
  • Verifique as etiquetas no momento da rotulagem e use símbolos 2D para cadeias de suprimentos longas ou complexas.
  • Metas expressas em defeitos por milhão de linhas.

TI e TO

  • Disponibilizar uma biblioteca ou serviço compartilhado para dígitos de verificação, CRCs e hashes, com vetores de teste publicados.
  • Assinar firmware e builds, manter chaves privadas em um módulo de segurança de hardware e planejar a rotação e revogação.
  • Sincronize relógios e mantenha registros em armazenamentos somente de acréscimo ou cadeias de hash com ancoragem externa.
  • Armazene os identificadores como strings em todos os sistemas que os utilizam.
  • Planeje a agilidade do algoritmo, pois o SHA-1 está sendo descontinuado e as assinaturas pós-quânticas estão chegando.

Duas dicas profissionais para engenheiros

  • Atribua um responsável a cada verificação. Essa pessoa será responsável pela manutenção do algoritmo, dos parâmetros, dos vetores de teste e do plano de reação.
  • Inclua cada verificação no plano de controle e na FMEA do processo e audite-a no mesmo cronograma que o sistema de medição.
Somas de verificação
A integração de checksums robustos e processos controlados aumenta a integridade e a confiabilidade do ciclo de vida do produto.

Conclusão sobre somas de verificação e similares

Os checksums são pequenos, antigos e bem compreendidos. Seu valor no trabalho com produtos físicos reside em posicionar o checksum correto no ponto certo do ciclo de vida e em tratar a verificação como um processo controlado com evidências.

Use dígitos de verificação onde pessoas e scanners manipulam identificadores. Use CRCs para quadros, blocos e imagens, com um polinômio que se ajuste ao comprimento da mensagem. Use SHA-256 para arquivos e registros, e assinaturas ou códigos digitados sempre que houver risco de alteração deliberada. Adicione correção de erros onde marcas e memórias possam ser danificadas.

Em seguida, feche o ciclo com evidências. Questione as verificações, calibre os verificadores, registre os resultados e revise os números. Uma verificação que ninguém testa é uma suposição.

 

Piloto em regime de transferência com o maior custo por fuga e sem verificação hoje. Meça a taxa de fugas antes e depois e use o resultado para justificar a próxima verificação.

Trate cada verificação como um item controlado com uma especificação, um responsável, vetores de teste e uma frequência de desafio. Uma verificação sem esses elementos se deteriorará.

 

Perguntas frequentes

Por que um CRC-32 aprovado não comprova que uma imagem de firmware é a versão pretendida?

Um CRC detecta apenas corrupção acidental, e qualquer pessoa pode criar uma imagem modificada que contenha o mesmo CRC. Verifique um resumo SHA-256 em relação a um registro de lançamento que chegue até você por um canal separado e adicione uma assinatura sempre que houver risco de alteração deliberada.

Quais erros escapam de um dígito verificador GS1 mod-10?

A verificação detecta todos os erros de um único dígito, mas não identifica transposições adjacentes de dígitos que diferem em 5, o que representa cerca de 11% das trocas de dígitos diferentes. Um dígito válido também não comprova nada sobre a alocação, portanto, mantenha a validação dos dados mestres próxima à verificação aritmética.

Como devo avaliar a detecção de FMEA para um controle baseado em checksum?

Avalie as evidências, não o algoritmo: uma parada automática que foi desafiada com amostras sabidamente incorretas recebe uma classificação muito melhor do que uma verificação que os operadores podem ignorar ou que nunca foi desafiada. Quantifique a probabilidade de escape, mantenha o registro de desafios e o registro de bypasses e aplique a lógica de prioridade de ação da AIAG-VDA 2019.

Como escolho um polinômio CRC para minha interface?

A distância de Hamming garantida depende tanto do polinômio quanto do comprimento da mensagem, portanto, defina primeiro o intervalo de comprimento. Koopman mostrou que o CRC-32 do padrão IEEE 802.3 atinge uma distância de Hamming de apenas 4 em quadros Ethernet de comprimento máximo, enquanto outros polinômios chegam a 6; portanto, utilize o polinômio obtido a partir de resultados de busca exaustiva publicados.

Por que dois sistemas que afirmam usar CRC-16 discordam em todos os frames?

O nome não define o algoritmo, pois a largura, o polinômio, o valor inicial, a reflexão de entrada, a reflexão de saída e o XOR final devem corresponder. Escreva os seis parâmetros na especificação da interface e teste ambas as extremidades com o valor de verificação da string ASCII 123456789 do catálogo Reveng.

Em que situações uma comparação SHA-256 no final da linha ainda não é prova de um flash correto?

Calcular o hash do arquivo de origem ou confiar no sinalizador de sucesso do programador não fornece informações sobre o conteúdo do dispositivo. Leia a região de volta do dispositivo por meio de um caminho separado, inclua bytes de opção, fuses e bits de bloqueio, trate dados específicos da unidade, como número de série, endereço MAC e calibração, separadamente e registre o resultado por número de série.

Uma cadeia de hash é suficiente para tornar os registros de lote à prova de adulteração?

Uma cadeia comprova ordem e integridade somente se seu hash mais recente estiver ancorado fora do sistema que armazena o registro. Utilize assinaturas periódicas, timestamps confiáveis ​​conforme a RFC 3161 ou envie o hash para um cliente ou auditor, pois, caso contrário, qualquer pessoa com acesso de escrita pode recalcular toda a cadeia.

Em que ponto o CRC do fieldbus para de proteger meus sinais?

Um gateway ou ponte recalcula o CRC para o próximo segmento, de modo que a corrupção em sua memória entre os dois saltos passa despercebida. Para sinais e pontos de ajuste relevantes para a segurança, adicione um CRC de ponta a ponta com um contador gerado na origem e verificado no consumidor.

Quantos bits um hash não criptográfico precisa para inventários e desduplicação?

O limite de data de nascimento é o fator decisivo: um hash de 32 bits com 100.000 itens tem uma probabilidade de colisão de cerca de 69%, enquanto um hash de 64 bits com um milhão de itens fica próximo de 2,7 em 100 milhões. Use 64 bits ou mais e compare os dados completos sempre que uma correspondência influenciar a decisão.

Como devo tratar os leitores e verificadores de código de barras em uma análise de sistema de medição?

Calibre os verificadores com um cartão de teste de conformidade, aplique as normas ISO/IEC 15416, 15415 ou 29158 ao tipo de símbolo e execute uma análise de concordância de atributos entre operadores, scanners e uma referência. Um símbolo que é lido com sucesso apenas demonstra que é lido; portanto, monitore a distribuição de notas e a capacidade de correção de erros não utilizada como indicadores de desvio.

Preciso validar a própria função de verificação em um ambiente regulamentado?

Sim, porque a verificação faz parte de um sistema informatizado que se enquadra nos princípios do GAMP 5, 21 CFR Parte 11 ou Anexo 11 da UE. Planeje IQ, OQ e PQ proporcionalmente ao risco, armazene os vetores de teste e os testes negativos no arquivo de validação e execute-os novamente após qualquer alteração no firmware do scanner, impressora, biblioteca ou sistema operacional.

Como planejar a desativação de algoritmos em produtos que permanecem em serviço por 10 a 20 anos?

Mantenha um registro de algoritmos com datas de revisão, por exemplo, para o plano do NIST de desativar o SHA-1 até 31 de dezembro de 2030. Projete bootloaders e canais de atualização de forma que algoritmos e chaves possam ser substituídos em campo, visto que a Lei de Resiliência Cibernética torna as atualizações assinadas e verificadas uma exigência de conformidade a partir de 11 de dezembro de 2027.

 

Apêndices

Apêndice A: Vetores de teste

Todos os valores foram calculados ou confirmados com o código apresentado no capítulo 25 ou com ferramentas de referência. Todas as strings de entrada são fornecidas como texto ASCII.

Função Entrada Resultado esperado
CRC-32 123456789 0xCBF43926
CRC-32C 123456789 0xE3069283
CRC-16/MODBUS 123456789 0x4B37
CRC-16/CCITT-FALSO 123456789 0x29B1
CRC-8 (polinômio 0x07) 123456789 0xF4
SHA-256 123456789 15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225
Quadro Modbus RTU 01 03 00 00 00 0A CRC 0xCDC5, enviado como CD C5
Exemplo de ensino CRC-3 Mensagem 1101, gerador 1011 Restante 001
Dígito verificador GTIN-13 400638133393 1, chave completa 4006381333931
Dígito verificador GTIN-12 03600029145 2, chave completa 036000291452
Dígito verificador GTIN-14 1540014128876 3, chave completa 15400141288763
dígito de verificação SSCC 34012345000000001 7, chave completa 340123450000000017
dígito de verificação de Luhn 7992739871 3, número completo 79927398713
Dígito verificador do VIN (regra norte-americana) 11111111111111111 1
Dígito verificador do VIN (regra norte-americana) 1HGBH41JXMN109186 X na posição 9

Apêndice B: Normas e referências

Fontes online utilizadas para este artigo, verificadas em novembro de 2026:

Normas e publicações citadas nominalmente, disponíveis junto das entidades emissoras:

  • RFC 1071 (checksum da Internet), RFC 2104 (HMAC), RFC 3161 (protocolo de carimbo de data/hora)
  • FIPS 180-4 (SHA-1 e SHA-2), FIPS 202 (SHA-3), NIST SP 800-38B (CMAC)
  • ISO/IEC 7064 (sistemas de caracteres de verificação), ISO 6346 (códigos de contêineres), ISO/IEC 29158 (qualidade de marcação direta de peças)
  • ISO 9001, IATF 16949, AS9100, ISO 13485, ISO 26262, IEC 61508, IEC 62304, IEC 62443
  • Manual de FMEA da AIAG e VDA, 1ª edição, 2019
  • 21 CFR Parte 11, Anexo 11 das BPF da UE, GAMP 5
  • Maxino e Koopman, A eficácia dos checksums para redes de controle embarcadas, IEEE Transactions on Dependable and Secure Computing, 2009
  • Regulamento (UE) 2024/2847 (Lei de Ciber-Resiliência), Regulamento (UE) 2024/1781 (Conceção Ecológica para Produtos Sustentáveis), Regulamento (UE) 2023/1542 (Baterias), Diretiva (UE) 2022/2555 (NIS2)

Tópicos abordados: Somas de verificação, integridade de dados, ciclo de vida do produto, erros de leitura de código de barras, ferramenta de qualidade, dígitos de verificação, CRC, SHA-256, arquivos CAD, lista de materiais (BOM), ordem de serviço, registros de envio, dígito de verificação GS1, correção de erros, imagens de firmware, assinatura, código digitado e passaporte digital do produto.

Contexto histórico

1959-11
1960
1960
1960
1960
1960
1960
1958
1960
1960
1960
1960
1960
1960
1960

(Caso a data seja desconhecida ou irrelevante, por exemplo, "mecânica dos fluidos", é fornecida uma estimativa aproximada de seu surgimento notável)

10º ano aniversário

Imagens em tamanho real e downloads estão disponíveis apenas, 100% gratuitos, para membros registrados.