Daniel Ramos - 2019-07-12

I'm making some research work over VeraCrypt's source files. I've added some printf before calling each algorithm at src/Volume/Cipher.cpp.

When encrypting a volume with AES, the log is the following: https://gist.githubusercontent.com/DanielRamosAcosta/2f09ef58684cb1c123ae99b1c37e0d42/raw/60e1c4e4bd13bab9400044b3fe0992ca6f47347c/aes-log.txt

When encrypting a volume with Serpent, the log is the following: https://gist.githubusercontent.com/DanielRamosAcosta/2f09ef58684cb1c123ae99b1c37e0d42/raw/60e1c4e4bd13bab9400044b3fe0992ca6f47347c/serpent-log.txt

The strange thing, is that in both logs, they are calling AES decrypt and encrypt and other algorithms (it seems random). Here is the diff: https://www.diffchecker.com/6DVuAeTe

My questions are:

  • Why does VeraCrypt call AES at the start?
  • Why VeraCrypt randomly calls other Algorithms (Serpent, Camellia, Gost89StaticSBOX, Kuznyechik...)?
  • When I'm unmounting a volume, it doesn't call these algorithms for encryption. Why is this?

Thanks you!

 

Last edit: Daniel Ramos 2019-07-12