# VeraCrypt

VeraCrypt es una aplicación informática gratuita (freeware), que sirve para realizar cifrado de disco, empleando para ello diferentes algoritmos de cifrado como: AES, Serpent y Twofish, o una combinación de los mismos. Permite crear un volumen virtual cifrado en un archivo o en una partición o bien (en Windows) cifrar un dispositivo de almacenamiento entero con autenticación previa al arranque.
Su primera versión estable se lanzó el 22 de junio de 2013.

## Licencia

VeraCrypt es una bifurcación basada en el código fuente del software discontinuado TrueCrypt. Hereda de TrueCrypt no solo el código sino la licencia original (TrueCrypt 3.0), que nunca fue considerada libre ni por la FSF ni por la OSI. El código desarrollado desde entonces por el nuevo equipo sí se encuentra bajo una licencia libre Apache 2.0 pero, al poseer partes licenciadas que no son libres (las procedentes de TrueCrypt), en su conjunto no se puede considerar software libre (u «open source», de acuerdo a la definición de la OSI) sino solo freeware, por los mismos motivos que TrueCrypt. Es también la razón por la cual no lo suelen incluir algunas distribuciones de Linux en sus respectivos repositorios oficiales.

## Esquema de cifrado
### Algoritmos

Los cifrados individuales soportados por VeraCrypt incluyen AES, Serpent, Twofish, Camellia y Kuznyechik. El cifrado Magma fue eliminado en la versión 1.19 en respuesta a una auditoría de seguridad.
Para mayor seguridad, se dispone de diez combinaciones diferentes de algoritmos en cascada: AES-Twofish, AES-Twofish-Serpent, Camellia-Kuznyechik, Camellia-Serpent, Kuznyechik-AES, Kuznyechik-Serpent-Camellia, Kuznyechik-Twofish, Serpent-AES, Serpent-Twofish-AES, y Twofish-Serpent. Las funciones hash criptográficas disponibles para su uso en VeraCrypt son RIPEMD-160, SHA-256, SHA-512, Streebog y Whirlpool.

### Modos de operación

VeraCrypt utiliza el modo de operación XTS.

### Claves

La clave de la cabecera y la clave de la cabecera secundaria (modo XTS) se generan usando PBKDF2 con una sal de 512 bits y 200 000 a 655 331 iteraciones usadas por defecto (que podrían ser personalizadas por el usuario para comenzar tan bajas como 2048), dependiendo de la función hash subyacente usada.

## VeraCrypt Auditoría

QuarksLab llevó a cabo una auditoría de la versión 1.18 en nombre del Open Source Technology Improvement Fund (OSTIF), que llevó 32 días. El auditor publicó los resultados el 17 de octubre de 2016. Ese mismo día, IDRIX publicó la versión 1.19, que resolvía las principales vulnerabilidades identificadas en la auditoría.
El Instituto Fraunhofer de Tecnologías de la Información Seguras (SIT) realizó otra auditoría en 2020, a petición de la Oficina Federal de Seguridad de la Información (BSI) de Alemania, y publicó los resultados en octubre de 2020.

## Negación plausible

Al igual que su predecesor TrueCrypt, VeraCrypt admite la negación plausible al permitir la creación de un único "volumen oculto" dentro de otro volumen. Además, las versiones de Windows de VeraCrypt tienen la capacidad de crear y ejecutar un sistema operativo encriptado oculto cuya existencia puede ser negada.
La documentación de VeraCrypt enumera muchas formas en las que las características de negación del volumen oculto de VeraCrypt pueden verse comprometidas (por ejemplo, por software de terceros que puede filtrar información a través de archivos temporales, miniaturas, etc., a discos no encriptados) y posibles formas de evitarlo.

## Rendimiento

VeraCrypt soporta encriptación paralela para sistemas multinúcleo y, bajo Microsoft Windows, operaciones de lectura y escritura en cadena (una forma de procesamiento asíncrono) para reducir el impacto en el rendimiento de la encriptación y desencriptación. En los procesadores que soportan el conjunto de instrucciones AES-NI, VeraCrypt soporta AES acelerado por hardware para mejorar aún más el rendimiento. En CPUs de 64 bits, VeraCrypt utiliza una implementación optimizada en ensamblador de Twofish y Camellia.