Tengo un proyecto que estipula las siguientes reglas de encriptación para un bloque de datos de 24 bytes.¿Cómo puedo hacer un MAC ISO 9797-1 con triple DES en C#?
1) Cryptography debe hacerse utilizando el algoritmo triple DES completo MAC como se define en 9797-1 como MAC algoritmo 3 con transformación de salida 3 sin truncamiento y con DES en el modo CBC como bloque cifrado con ICV ajustado a ceros . Los últimos 8 bytes de datos cifrados constituyen el valor que necesitamos.
El programa dice que la encriptación es incorrecta. ¿Hay alguna otra cosa que deba hacer para que coincida con la especificación anterior?
La información es un valor de 24 bytes y la salida del cifrado debería ser de 8 bytes, supongo (según la especificación). Me estoy haciendo todo el 24 bytes como salida :(
me escribió el siguiente código para lograr dicha especificación:
des.KeySize = 128;
des.Key = ParseHex(key);
des.Mode = CipherMode.CBC;
des.Padding = PaddingMode.None;
ICryptoTransform ic = des.CreateEncryptor();
CryptoOutput = ic.TransformFinalBlock(CryptoOutput, 0, 24);
yo probamos este también:
MACTripleDES des = new MACTripleDES(ParseHex(key));
byte[] CDCryptp = des.ComputeHash(CryptoOutput);
¿Cuál es el tipo de 'des'? –
El tamaño de la clave 3DES es de 112 bits –
@Anders triple des mac completo – logeeks