TripleDES: la clave especificada es una clave débil conocida para 'TripleDES' y no se puede utilizar

Estoy usando la clase .NET 3.0System.Security.Cryptography.MACTripleDES clase para generar un valor MAC. Desafortunadamente, estoy trabajando con un dispositivo de hardware que usa "1111111111111111 "(como hexadecimal) como una clave DES de longitud única. LaSystem.Security.Cryptography library realiza un poco de comprobación de la clave y devuelve una excepción si intenta utilizar una clave criptográficamente débil.

Por ejemplo

byte[] key = new byte[24];
for (int i = 0; i < key.Length; i++)
  key[i] = 0x11;

byte[] data = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
byte[] computedMac = null;
using (MACTripleDES mac = new MACTripleDES(key))
{
  computedMac = mac.ComputeHash(data);
}

lanza una excepción

System.Security.Cryptography.CryptographicException : Specified key is a known weak key for 'TripleDES' and cannot be used.

Sé que esta no es una clave segura. En producción, el dispositivo se mostrará con una nueva clave segura. Mientras tanto, ¿hay alguna forma de inhibir esta excepción? Quizás unaapp.config o configuración de registro?

Edit: La clave en realidad sería 101010 ... debido al algoritmo que fuerza la paridad impar. No estoy seguro de si esto es universal para el algoritmo DES o simplemente un requisito en el trabajo de procesamiento de pagos que hago.

Edit 2: la respuesta de Daniel a continuación tiene muy buena información sobre cómo hackear .NET. Desafortunadamente, no pude resolver mi problema usando esta técnica, pero todavía hay algunas lecturas interesantes allí.

Respuestas a la pregunta(8)

Su respuesta a la pregunta