He implementado un programa muy corto para cifrar un archivo y enviarlo a un servidor remoto. Primero, construyo una clave basada en una frase de paso y un subconjunto de números primos (la longitud de la clave está definida por el usuario, 100 KB por defecto). El cifrado se realiza con un XOR simple a partir de los bytes de la fuente y los "bytes modulados" de la clave, por ejemplo: s ^ k
. Se envía un índice de los archivos, también cifrado.
Si la clave privada y la frase de contraseña privada nunca se envían al servidor, ¿es posible descifrar archivos, tipos de archivos o nombres?
Este es el código del cifrado cuando se generó la clave.
while (!feof(fp_src))
{
v = fgetc(fp_src) ;
if (v == EOF) { break ; } // Success : end of process.
// Loop on key content :
p = fgetc(fp_key) ;
if (p == EOF) {
fseek(fp_key, 0, SEEK_SET) ;
p = fgetc(fp_key) ;
if (p == EOF) { break ; }
}
o = v ^ p ;
fputc(o, fp_out) ;
show_progress(src_len, proc_idx) ;
proc_idx++ ;
}
Muchas gracias.