Increase True Crypt AES performance
I used the new version of True Crypt which has just been released to encrypt my new external hard drive which has become almost a standard procedure for me to do.
Whenever I buy a new hard drive, I encrypt it entirely with True Crypt. I discovered a method by chance to increase the performance of the AES algorithm in True Crypt.
The solution is a little bit complicated because you have to compile a source to get it to work. The benefit however is a much better performance of that algorithm which has been programmed in Assembler in comparison to the one programmed in C that True Crypt is using by default.
The increase is amazing. The bandwidth increases by about 20 MB/s from 66 MB/s to 85 MB/s on the system of the user who discovered it. It depends on the hard drive of course but everyone should see a gain in the end.
You will need the following to compile the algorithm source and True Crypt:
- Microsoft Visual Studio 2005 with SP1
- Microsoft Visual C++ 1.52
- Windows Driver Development Kit (DDK) Vista Build 6000
- YASM
You can read the full instructions in this thread. I was not able to locate a precompiled version of True Crypt with this faster AES algorithm yet. If anyone comes up with a trustworthy download source let me know. I unfortunately do not have Microsoft Visual Studio 2005.
Update: The developers of True Crypt have added hardware AES protection to True Crypt 7.0 which boosts the performance of encrypting drives significantly on systems that are compatible with the application.
The increase can reach up to eight times the performance of software encryption. Note that the cpu needs to support AES hardware encryption which is currently supported by processors that support Intel AES-NI instructions.
Update 2: True Crypt is no longer available. The project has been retired. We suggest you use Vera Crypt, a successor based on True Crypt code instead.
Thank you Martin for this post
Could you please help me.
I’m trying to compile TrueCrypt for Windows but I found only MSVC 1.5 not 1.52. And during compilation of Boot project I got following error:
fatal error C1008: no input file specified
NMAKE : U1077: c:\msvc15\bin\cl.exe:
during execution of
c:\msvc15\bin\cl.exe /nologo /W2 /Fc /I “c:\msvc15\Include” /I”..\..\..” /I”..\..\..\Common” /I”..\..\..\Crypto” /D __int8=char /D __int16=int /D __int32=long /D BOOL=__int32 /D FALSE=0 /D TRUE=1 /D LITTLE_ENDIAN=1234 /D BYTE_ORDER=1234 /D TC_WINDOWS_BOOT /D TC_MINIMIZE_CODE_SIZE /D TC_NO_COMPILER_INT64 /D malloc=malloc_NA /AT /Zl /f- /G3 /Oe /Os /Ob1 /OV0 /Gs /Gf /Gy /D NDEBUG /D TC_ASM_PREPROCESS /P /EP “..\BootDefs.h”
Should I find 1.52 of MSVC to fix this problem?
Thank you
You’re right Martin. The 5.1 version of truecrypt includes the asm implementation of aes that you linked to here. I figured something as easy as that would almost have to be adopted into their development
A new True Crypt version has been released that is said to increase the AES performance in Windows by up to 90%. Maybe they did implement the faster algorithm ?
That would be awesome Tash
I’m surprised noone’s done this yet and posted a compiled version..
When I get on my laptop later tonight with VS I’ll download the code and see if I can get it all to compile and work. I’ll try to optimize a 64bit version too.
I’ll leave another comment if it all works out with the download links :]
why won’t you give us a link to your compiled version?
I haven’t and I don’t wanna install the gigantic visual studio just for one single compilation where I’m not even sure that will work at the first try.