Criptografia DES e 3DES em Plugins Web para Leitores RFID

Entendendo DES e 3DES

DES é um algoritmo de criptografia padrão que utiliza criptografia de chave simétrica, com uma chave de 8 bytes. O 3DES, ou Triple DES, é uma transição para o AES, usando uma chave dupla de 16 bytes (K = KL || KR) para criptografar ou descriptografar blocos de 8 bytes de texto claro, aplicando o algoritmo DES três vezes. A fórmula é Y = DES(KL[DES-1(KR[DES(KL[X])])]) para criptografia e X = DES-1(KL[DES(KR[DES-1(KL[Y])])]) para descriptografia. O 3DES é amplamente utilizaod em cartões IC e CPU por sua segurança.

Suporte a 3DES no Plugin Web para Cartões IC

O plugin web para cartões IC da Youwo Tech suporta DES e 3DES, podendo ser usado independentemente ou integrado com cartões IC. Por ser baseado em algoritmos padrão, os dados criptografados podem ser descriptografados em outros dispositivos, garantindo compatibilidade.

Interfaces para DES e 3DES

O plugin oferece funções específicas para criptografia e descriptografia. A função principal é:

Des(DesData, DesDataFormat)

Essa função é configurada por propriedades adicionais:

  • DesDir: Direção da criptografia - 0: nenhuma, 1: criptografar, 2: descriptografar.
  • DesMode: Modo de processamento dos dados - 0: dados originais, 1: inversão dos dados, 2: dados originais concatenados com sua inversão.
  • DesKey: Chave para DES (8 bytes) ou 3DES (16 bytes).
  • DesKeyMode: Formato da chave - 0: string hexadecimal, 1: string comum.

Os parâmetros são: DesData (dados a processar) e DesDataFormat (0 para string hexadecimal, 1 para string comum). O retorno é tratado por uma função de callback.

Exemplo de Criptografia em JavaScript

function startEncryption() {
  var chaveSecreta = "11223344556677889900AABBCCDDEEFF"; // Chave de 16 bytes para 3DES
  var dadosClaro = "1234567812345678";
  var modoProcessamento = 0;

  rfidreader.DesDir = 1; // Criptografar
  rfidreader.DesMode = modoProcessamento;
  rfidreader.DesKey = chaveSecreta;
  rfidreader.DesKeyMode = 0; // Formato hexadecimal
  rfidreader.Des(dadosClaro, 0);
}

Para descriptografar, altere DesDir para 2 e use o mesmo código. A resposta é capturada assim:

rfidreader.onResult(function(resultado) {
  if (resultado.FunctionID === 22 && resultado.Result > 0) {
    var dadosCriptografados = resultado.strData;
    // Processar os dados
  } else {
    console.error("Falha na operação");
  }
});

Integração com Cartões IC

Ao trabalhar com cartões IC, é possível criptografar ou descriptografar dados durante a leitura ou escrita, otimizando o processo. Funções como M1ReadBlock, M1WriteBlock, M1ReadSector e M1WriteSector suportam operações DES/3DES simultâneas, controladas pelas mesmas propriedades (DesDir, DesMode, DesKey, DesKeyMode).

Para cartões CPU, o plugin facilita cálculos como a autenticação de chaves usando 3DES em números aleatórios, essencial em muitas aplicações de segurança.

Tags: DES 3DES RFID javascript Criptografia simétrica

Publicado em 7-7 07:05