¿Cómo utilizar los algoritmos RSA y DES para cifrar datos?
1. Razones para el cifrado híbrido
a. Los dos algoritmos de cifrado y descifrado, el algoritmo de cifrado y descifrado RSA y el algoritmo de cifrado y descifrado DES, se mencionaron anteriormente debido a la mejora continua. de las capacidades del sistema informático. Con el desarrollo, la seguridad de DES será mucho más débil que cuando apareció por primera vez. Hay innumerables casos de descifrado de DES que se remontan a la historia. Una máquina real puede descifrar DES en unos pocos días. Lo que hace que algunas personas crean que no pueden confiar en la seguridad del método DES. En comparación con DES, RSA es relativamente más seguro. Aunque hay casos de descifrado de RSA, el precio pagado es relativamente alto (en comparación con DES, las claves RSA también se están actualizando hoy en día, lo que demuestra que es difícil descifrar RSA). La dificultad también está aumentando.
b. En el algoritmo de cifrado y descifrado RSA, se menciona que el texto sin formato cifrado RSA estará limitado por la longitud de la clave. Esto significa que la longitud del texto sin formato está limitada cuando se utiliza el cifrado RSA. En la situación real, tenemos que La longitud del texto sin formato cifrado puede ser mayor que la longitud de la clave, por lo que debemos abandonar el cifrado RSA. En este sentido, el cifrado DES no tiene esta limitación.
En vista de los dos puntos anteriores (opinión personal), es posible que el uso de cifrado DES o RSA por sí solo no pueda satisfacer las necesidades reales, por lo que se utiliza una combinación de métodos de cifrado RSA y DES para lograr el cifrado de datos.
El método de implementación es:
1. La información (texto sin formato) se cifra mediante clave DES.
2. Utilice RSA para cifrar la información de la clave DES anterior.
En última instancia, se entregarán mensajes contradictorios.
Después de que el receptor reciba la información:
1. Utilice RSA para descifrar la información de la clave DES.
2. Utilice la información clave obtenida mediante el descifrado RSA para descifrar la información del texto cifrado.
Por fin podemos obtener la información (texto plano) que queremos.
2. Ejemplo de implementación:
Combinando el cifrado RSA y DES anterior:
///
/// Cifrado RSA mixto con DES
///
/// Datos a cifrar
/// Clave pública RSA
///
public Param Encrypt(datos de cadena , string publicKey)
{
//Datos cifrados
DESSecurity DES = new DESSecurity();
string DESKey = DES. GenerateKey( );
string encryptData = DES.Encrypt(data, DESKey);
//Cifrar DESkey
RSASecurity RSA = new RSASecurity();
cadena encryptDESKey = RSA.Encrypt(DESKey, publicKey);
Param mixParam = new Param();
mixParam.DESKey = encryptDESKey;
mixParam.Data = encryptData;
devuelve mixParam;
}
///
/// Descifrado híbrido RSA y DES
///
/// Datos a descifrar
/ // DESKey con descifrado
/// Clave privada RSA
///
cadena pública Decrypt(datos de cadena, clave de cadena, clave privada de cadena)
{
//Descifrar DESKey
RSASecurity RSA = new RSASecurity();
cadena DESKey = RSA.Decrypt(clave, clave privada);
//Descifrar datos
DESSecurity DES = new DESSecurity();
devuelve DES.Decrypt(datos, DESKey);