TrueCrypt is a software system for establishing and maintaining an on-the-fly-encrypted volume (data storage device). On-the-fly encryption means that data are automatically encrypted or decrypted right before they are loaded or saved, without any user intervention. No data stored on an encrypted volume can be read (decrypted) without using the correct password/keyfile(s) or correct encryption keys. Entire file system is encrypted (e.g.., file names, folder names, contents of every file, free space, meta data, etc).
Files can be copied to and from a mounted TrueCrypt volume just like they are copied to/from any normal disk (for example, by simple drag-and-drop operations). Files are automatically being decrypted on-the-fly (in memory/RAM) while they are being read or copied from an encrypted TrueCrypt volume. Similarly, files that are being written or copied to the TrueCrypt volume are automatically being encrypted on-the-fly (right before they are written to the disk) in RAM. Note that this does not mean that the whole file that is to be encrypted/decrypted must be stored in RAM before it can be encrypted/decrypted. There are no extra memory (RAM) requirements for TrueCrypt. For an illustration of how this is accomplished, see the following paragraph.
Let's suppose that there is an .avi video file stored on a TrueCrypt volume (therefore, the video file is entirely encrypted). The user provides the correct password (and/or keyfile) and mounts (opens) the TrueCrypt volume. When the user double clicks the icon of the video file, the operating system launches the application associated with the file type – typically a media player. The media player then begins loading a small initial portion of the video file from the TrueCrypt-encrypted volume to RAM (memory) in order to play it. While the portion is being loaded, TrueCrypt is automatically decrypting it (in RAM). The decrypted portion of the video (stored in RAM) is then played by the media player. While this portion is being played, the media player begins loading next small portion of the video file from the TrueCrypt-encrypted volume to RAM (memory) and the process repeats. This process is called on-the-fly encryption/decryption and it works for all file types, not only for video files.
Note that TrueCrypt never saves any decrypted data to a disk – it only stores them temporarily in RAM (memory). Even when the volume is mounted, data stored in the volume is still encrypted. When you restart Windows or turn off your computer, the volume will be dismounted and files stored in it will be inaccessible (and encrypted). Even when power supply is suddenly interrupted (without proper system shut down), files stored in the volume are inaccessible (and encrypted). To make them accessible again, you have to mount the volume (and provide the correct password and/or keyfile).
For a quick start guide, please see the chapter Beginner's Tutorial.
May 3, 2007
Full support for custom screen DPI settings. (Windows, GUI)
- Other minor improvements. (Windows and Linux)
Fixed bug that in some cases caused the 'Safely Remove Hardware' function to fail.
In Windows Vista, it is now possible to read data from file-hosted TrueCrypt volumes located on UDF-formatted media mounted in read-only mode.
All Volume Creation Wizard GUI elements are now correctly displayed on systems with custom DPI settings. (Windows, GUI)
- Other minor bug fixes. (Windows and Linux)
Linux: When running without administrator privileges, TrueCrypt automatically attempts to elevate its access rights (if necessary) using the sudo command. The Linux version of TrueCrypt no longer supports the set-euid root mode of execution. These changes also prevent all discovered and undiscovered (if any) security issues related to the set-euid root mode of execution, including an issue affecting all previous Linux versions of TrueCrypt where a local non-administrator user could cause a denial of service or gain administrator privileges.
If dismount is forced on a TrueCrypt volume when TrueCrypt runs in traveller mode, the TrueCrypt driver will not be unloaded when TrueCrypt exits (it will be unloaded only when the system is restarted or shut down). This prevents various problems caused by a bug in Windows (for instance, it would be impossible to start TrueCrypt again as long as there are applications using the dismounted volume). (Windows)
March 19, 2007
Full compatibility with 32-bit and 64-bit Windows Vista:
Support for User Account Control (UAC).
All .sys and .exe files of TrueCrypt are now digitally signed with the digital certificate of the TrueCrypt Foundation, which was issued by the certification authority GlobalSign.
When moving the mouse on a single-CPU computer while reading or writing data to a TrueCrypt volume, the mouse pointer stopped moving for a second every few seconds. This will no longer occur. (Windows Vista issue)
Other minor compatibility-related changes.
TrueCrypt volume is automatically dismounted if its host device is inadvertently removed.
Important: Before you physically remove a device (such as a USB flash drive) where a mounted TrueCrypt volume resides, you should always dismount the volume in TrueCrypt first, and then perform the 'Eject' operation (right-click the host device in the 'Computer' or 'My Computer' list) or use the 'Safely Remove Hardware' function (built in Windows, accessible via the taskbar notification area).
Ability to write data to file-hosted volumes located on devices that use a sector size other than 512 bytes (e.g., new hard drives, DVD-RAM, some MP3 players and USB flash drives, etc.)
Support for devices with a GPT partition table (GUID partitions). (Windows Vista/2003/XP)
After a partition is successfully encrypted, the drive letter assigned to it (if any) is automatically removed. (Windows)
Volume name (label) is displayed in device/partition selector. (Windows)
New hotkey: 'Wipe Cache'. (Windows)
New command line switch '/q background' for launching the TrueCrypt Background Task. (Windows)
Portions of the TrueCrypt device driver redesigned.
Maximum allowed size of FAT32 volumes increased to 2 TB (note that NTFS volumes can be larger than 2 TB).
Traveller Disk Setup improved. (Windows)
Volumes hosted on read-only media will always be mounted in read-only mode. (Windows Vista/2003/XP)
Improved support for big-endian platforms.
- Other minor improvements (Windows and Linux)
The built-in FAT format facility now functions correctly on big-endian platforms.
Improved handling of partitions and devices during volume creation. (Windows)
Improved handling of low-memory conditions. (Windows)
Fixed bug that rarely caused system errors when dismounting all volumes. (Windows)
Tray icon is recreated when Windows Explorer is restarted (e.g. after a system crash).
- Other minor bug fixes. (Windows and Linux)
Improved security of set-euid root mode of execution. Volume can be dismounted only by the user who mounted it or by an administrator (root). (Linux)
- The option 'Cache passwords and keyfiles in memory' in the password prompt dialog window no longer sets the default setting (to set the default setting, select Settings > Preferences and enable or disable the option 'Cache passwords in driver memory'). (Windows)
- 64-bit block ciphers are being phased out. It is no longer possible to create new volumes encrypted with 64-bit-block encryption algorithms (Blowfish, CAST-128, and Triple DES). Note that it is still possible to mount such volumes.
July 3, 2006
Writing to a TrueCrypt volume under Linux no longer causes the system to stop responding under certain conditions.
Occasional application errors no longer occur when selecting a file (Windows XP SP2 issue).
Fixed bug that caused installation of the TrueCrypt driver to fail under certain configurations of 64-bit Windows.
TrueCrypt volumes mounted in a remote session under Windows 2000 can now be accessed.
TrueCrypt Volume Creation Wizard no longer blocks hot keys of certain applications. (Windows)
Other minor bug fixes (Windows and Linux)
It will not be required to reinstall the TrueCrypt kernel module after every minor Linux kernel update.
- Other minor improvements (Windows and Linux)
The Linux version of TrueCrypt now uses the TrueCrypt Random Number Generator (ported from the Windows version of TrueCrypt) instead of using only the Linux built-in random number generator. (This change was necessary due to a flaw in the Linux built-in random number generator: Data from the mouse and keyboard, which are the most important sources of random data, are not read by the Linux built-in random number generator when the user has only a USB mouse/keyboard.)
Note: The Linux version of TrueCrypt still uses the Linux built-in random number generator. However, it is now merely one of the data sources used by the TrueCrypt random number generator.
Interactive mount mode, which allows the user to avoid passing sensitive parameters via command line. (Linux)
TrueCrypt volume is unmapped if mounting it to a directory fails. (Linux)
When the 'Never Save History' option is enabled, TrueCrypt sets its “current directory” to the user's home directory (in traveller mode, to the directory from which TrueCrypt was launched) after a container or keyfile is selected via the Windows file selector. Therefore, the Windows file selector will not “remember” the path of the last selected container or keyfile. (Windows)
April 17, 2006
TrueCrypt volumes can now be created under Linux.
Ability to create a 'dynamic' container whose physical size (actual disk space used) grows as new data is added to it. (Dynamic containers are pre-allocated NTFS sparse files.)
Volume passwords/keyfiles can be changed under Linux.
Keyfiles can be created under Linux.
Volume headers can be backed up and restored under Linux.
Multiple keyfiles can be selected in the file selector by holding the Control (Ctrl) or Shift key (Windows).
It is now possible to enable and directly set keyfiles by dragging the icon of keyfile(s) or of keyfile search path(s) to the password entry window (Windows only).
New Linux command line option: -u, --user-mount, which can be used to set default user and group ID of the file system being mounted to the user and group ID of the parent process. Some file systems (such as FAT) do not support user permissions and, therefore, it is necessary to supply a default user and group ID to the system when mounting such file systems.
The build.sh script can now perform automatic configuration of the Linux kernel source code, which is necessary in order to compile TrueCrypt on Linux. Note that this works only if the installed version of the kernel enables/supports it.
TrueCrypt volume properties can be viewed under Linux.
New Mount Option: 'system'. It is possible to place paging (swap) files on a TrueCrypt volume that is mounted with this option enabled. Thus, it is possible to use TrueCrypt to on-the-fly encrypt a paging file. (Windows, command line usage)
New Mount Option: 'persistent'. A volume mounted with this option enabled is not displayed in the TrueCrypt GUI and is prevented from being auto-dismounted ('Dismount All' will not dismount the volume either). (Windows, command line usage)
It is now possible to mount a single TrueCrypt volume from multiple operating systems at once (for example, a volume shared over network), provided that the volume is mounted as read-only under each system (Windows).
Current directory is never left set to a removable device after a file (e.g., a container, keyfile, header backup) stored on it is selected via file selector in TrueCrypt. Therefore, it will be possible to 'Safely Remove' the device in such cases. (Windows)
Improved security of set-euid root mode of execution (Linux).
Other minor improvements
It is now possible to dismount volumes that cannot be opened (for example, after disconnecting and reconnecting a USB flash drive formatted as NTFS containing a mounted TrueCrypt volume).
Fixed bug that sometimes caused the mount process to fail under Linux when one or more TrueCrypt volumes were already mounted.
Command line argument buffer is now wiped upon exit (Windows, command line usage).
Other minor bug fixes
November 25, 2005
New mode of operation implemented: LRW.
LRW mode is more secure than CBC mode and is suitable for disk encryption. LRW mode is to become an IEEE standard for sector-based storage encryption. (For more information on LRW mode, see chapter Technical Details, section Modes of Operation in the documentation).
Volumes created by this version of TrueCrypt can be encrypted only in LRW mode. However, volumes created by previous versions of TrueCrypt can still be mounted by this version of TrueCrypt.
To prevent a recently discovered attack, which affects plausible deniability, we strongly recommend that you move data from your TrueCrypt volume to a new volume created by this version. Description of the attack: If a series of certain plaintext blocks is written to a mounted volume (i.e., if it is correctly encrypted), it is, with a very high probability, possible to distinguish the volume from random data. This affects volumes created by all versions of TrueCrypt prior to 4.1, except volumes encrypted with AES-Blowfish or AES-Blowfish-Serpent.
The encryption algorithm test facility (Tools -> Test Vectors) now supports LRW mode.
AES routines by Dr. Brian Gladman updated to the latest version.
Improved support for using TrueCrypt under non-administrator accounts on Linux (set-euid root).
A new instance of TrueCrypt will be created only if necessary.
Other minor improvements
Password input field will be correctly wiped after each mount attempt.
Hidden volume protection now works if set via 'Mount with Options'.
Containers located on volumes that are accessible only in local user name space can now be mounted.
The option /keyfile now works if specified with '/auto devices' or '/auto favorites' (command line usage)
Volumes whose paths contain spaces can be mounted (Linux)
Several localization issues fixed
Other minor bug fixes
November 1, 2005
TrueCrypt volumes can now be mounted on Linux. The Linux version of TrueCrypt is available at http://www.truecrypt.org/downloads.php
It is now possible to write to outer volume without risking that a hidden volume within it will get damaged (overwritten):
When mounting an outer volume, the user can now enter two passwords: One for the outer volume, and the other for a hidden volume within it, which he/she wants to protect. In this mode, TrueCrypt does not actually mount the hidden volume. It only decrypts its header and retrieves information about the size of the hidden volume (from the decrypted header). Then, the outer volume is mounted and any attempt to save data to the area of the hidden volume will be rejected by the driver (until the outer volume is dismounted). For further details, please see the section 'Protection of Hidden Volumes against Damage' in the documentation.
Support for the x86-64 (64-bit) platform
TrueCrypt now runs on Windows XP x64 Edition (64-bit) and Windows Server 2003 x64.
Support for big-endian hardware platforms (PowerPC, SPARC, Motorola, etc.)
Full support for keyfiles. Keyfiles provide protection against keystroke loggers and may strengthen protection against brute force attacks. Keyfile is a file whose content is combined with a password. Until correct keyfile is provided, no volume that uses the keyfile can be mounted. Any number of, and any kind of files (for example, .mp3, .jpg, .exe, .avi) may be used as TrueCrypt keyfiles. TrueCrypt never modifies the keyfile contents. Therefore, it is possible to use, for example, five files in your large mp3 collection as TrueCrypt keyfiles (and inspection of the files will not reveal that they are used as keyfiles). TrueCrypt can also generate a file with random content, which can be used as a keyfile. For more information on keyfiles, see the chapter Keyfiles in the documentation.
Support for language packs (localizations). Language packs may be downloaded at: http://www.truecrypt.org/localizations.php
Whirlpool hash algorithm added.
The size of the output of this hash algorithm is 512 bits. It was designed by Vincent Rijmen (co-designer of the AES encryption algorithm) and Paulo S. L. M. Barreto. The first version of Whirlpool was published in November 2000. The second version, now called Whirlpool-T, was selected for the NESSIE (“New European Schemes for Signatures, Integrity and Encryption") portfolio of cryptographic primitives (a project organized by the European Union, similar to the AES contest). TrueCrypt uses the third (final) version of Whirlpool, which was adopted by the International Organization for Standardization (ISO) and the IEC in the ISO/IEC 10118-3:2004 international standard.
Auto-Dismount facility, which can be set to dismount a volume after no data has been written/read to/from it for specified number minutes. It can also be set to dismount all mounted TrueCrypt volumes when:
- user logs off
- entering power saving mode
- screen saver is launched
Auto-dismount can be configured and activated in the Preferences (select Settings -> Preferences)
TrueCrypt settings are not saved to the Windows registry file. Instead, they are stored in XML files in the folder where application data are saved on the system (for example, in C:\Documents and Settings\YourUserName\Application Data\TrueCrypt). In traveller mode, the configuration XML files are saved to the folder from which you run the file TrueCrypt.exe.
Note: When you install this version of TrueCrypt, all TrueCrypt settings that were stored by previous versions in the registry file will be automatically removed.
Tray icon. Right-clicking the tray icon opens a popup menu with the most used functions. Left-clicking the tray icon opens the main TrueCrypt window and puts it into the foreground.
Optionally, TrueCrypt can now continue running in the background after its main window is closed. This is referred to as TrueCrypt Background Task. When the main TrueCrypt window is closed, the TrueCrypt Background Task handles the following tasks/functions:
1) Hot keys
3) Notifications (e.g., when damage to hidden volume is prevented)
4) Tray icon
For more information, see the chapter TrueCrypt Background Task in the documentation.
When a mounted volume is right-clicked in the drive list (in the main TrueCrypt window), a context menu is opened. From this menu, the user can select functions such as 'Repair Filesystem' or 'Check Filesystem' (front-end to the 'chkdsk' tool).
Containers stored on a locally mapped network drive can now be mounted.
Container stored on a remote server can be mounted via UNC path (e.g., \\server\share\volume).
Option to display password (typed in input field)
'Favorite Volumes' facility, which is useful if you often work with more than one TrueCrypt volume at a time and you need each of them to be mounted as the same drive letter every time. For more information, see the chapter 'Main Program Window', section 'Program Menu', subsection 'Volumes -> Save Currently Mounted Volumes as Favorite' in the documentation.
Functions 'Backup Volume Header' and 'Restore Volume Header' added to the Tools menu. Both the standard volume header and the hidden volume header area are always backed up (copied to the backup file) even if there is no hidden volume within the volume (to preserve plausible deniability of hidden volumes).
Note: If you do not have enough free space to backup all files, we highly recommend that you at least use this facility to backup the volume header, which contains the master key (size of the backup file will be 1024 bytes). If the volume header is damaged, the volume is, in most cases, impossible to mount.
System-wide hot keys (which can be used, for example, to dismount all TrueCrypt volumes, etc.)
Users can now set actions to perform upon log on to Windows. The actions can be any of the following:
- Start TrueCrypt
- Mount all device-hosted TrueCrypt volumes
- Mount favorite volumes
These actions can be enabled in the Preferences (select Settings -> Preferences).
Title bar of the password prompt dialog window now displays path to volume being mounted
When the 'Never save history' option is enabled, TrueCrypt clears the registry entries created by the Windows file selector for TrueCrypt. Therefore, the Windows file selector will not remember the path of the last mounted container after you exit TrueCrypt. Note that even when this option is enabled, the file selector will still remember the path, but only until you exit TrueCrypt.
'Set Header Key Derivation Algorithm' added to the Volumes menu. It allows the user to re-encrypt a volume header with a header key derived using a different PRF function (e.g., instead of HMAC-SHA-1 you could use HMAC-Whirlpool). Note: Volume header contains master encryption key with which volume is encrypted. Therefore, data stored on the volume will not be lost after this function is used.
Number of bytes read/written from/to a volume since it was mounted is displayed in the Volume Properties window.
Preserving container timestamps can now disabled in the Preferences (Settings -> Preferences).
Command line usage:
if '/silent' is specified, interaction with user (prompts, error messages, warnings, etc.) is suppressed.
If '/m timestamp' is specified, volume/keyfile timestamps are not preserved.
'/keyfile' may be used to specify a keyfile or a keyfile search path.
'/auto favorites' may be used to mount favorite volumes.
'/auto' is implicit if '/quit' and '/volume' are specified.
If '/q preferences' is specified, TrueCrypt loads/saves settings.
Auto-Mount Devices keeps prompting for a password until a volume is successfully mounted or until cancelled. Warning is displayed after each unsuccessful mount.
If the Shift key is down when clicking 'Auto-Mount Devices' and if there are cached passwords, then password prompt will be bypassed (mounting will be attempted only with cached passwords).
It is now possible to run multiple instances of the TrueCrypt application simultaneously.
Mounting of fragmented file-hosted volumes (containers) takes significantly less time.
New SHA-1 routines by Brian Gladman, which are approx. three times faster than the original ones (speeds up mounting).
Enhancements to the random number generator:
Hash function output is XORed into the pool (in E4M and the previous versions of TrueCrypt the values produced by a hash function replaced the original values in the pool).
Input to hash function will always be the entire pool.
Position of the pool cursor does not change when the FastPoll function is applied. This ensures that mouse coordinates are always evenly distributed in the pool (significant particularly when moving the mouse uninterruptedly).
Event delta/absolute time will be added modulo 2^32 to the pool at the same position as the event data. (In the previous versions, event delta times were added separately modulo 2^32 to the pool. Delta times provide only a small amount of entropy, particularly when moving the mouse uninterruptedly.)
For more information see the chapter Technical Details, section Random Number Generator in the documentation.
Important: That we made these enhancements to the random number generator does NOT mean that volumes created using previous versions of TrueCrypt are insecure.
File-hosted volumes are pre-allocated before they are formatted. Therefore, containers are created faster and less fragmented.
When TrueCrypt re-encrypts a volume header (for example, when changing a password), the original volume header is first overwritten 35 times with random data to prevent adversaries from using techniques such as magnetic force microscopy to recover the overwritten header.
Traveller disk can be created when TrueCrypt is running in traveller mode.
TrueCrypt warns if automatic mounting of new volumes is disabled in Windows and informs the user how to enable this functionality.
Other minor improvements
Hidden volume password can now be changed on all types of removable media (e.g., all types of USB memory sticks).
When changing a password and an error occurs during the creation of a new volume header, the header will not be written and the error will be reported.
FAT file system created by TrueCrypt will have the same properties as FAT file system created by Windows.
Drive list will be updated whenever drive letter assignments change.
If an error occurs, TrueCrypt returns exit code 1, otherwise it returns 0 (command line usage).
Password specified on command line (/p ) now works with '/a devices' as well (command line usage).
Other minor bug fixes
Size of the random number generator pool increased from 256 to 320 bytes
The command line option '/quiet' has been renamed to '/quit'
The Serpent routines written in assembly have been replaced with routines written in C, so that the whole source code is more portable.