World Library  
Flag as Inappropriate
Email this Article


Article Id: WHEBN0010782256
Reproduction Date:

Title: Dm-crypt  
Author: World Heritage Encyclopedia
Language: English
Subject: Comparison of disk encryption software, Linux Unified Key Setup, Cryptoloop, Linux kernel, Disk encryption
Publisher: World Heritage Encyclopedia


dm-crypt is a transparent disk encryption subsystem in Linux kernel versions 2.6 and later and in DragonFly BSD. It is part of the device mapper infrastructure, and uses cryptographic routines from the kernel's Crypto API. Unlike its predecessor cryptoloop, dm-crypt was designed to support advanced modes of operation, such as XTS, LRW and ESSIV (see disk encryption theory), in order to avoid watermarking attacks.[1] In addition to that, dm-crypt also addresses some reliability problems of cryptoloop.[2]

dm-crypt is implemented as a device mapper target and may be stacked on top of other device mapper transformations. It can thus encrypt whole disks (including removable media), partitions, software RAID volumes, logical volumes, as well as files. It appears as a block device, which can be used to back file systems, swap or as an LVM physical volume.

Some Linux distributions support the use of dm-crypt on the root file system. These distributions use initrd to prompt the user to enter a passphrase at the console, or insert a smart card prior to the normal boot process.[3]


The dm-crypt device mapper target resides entirely in kernel space, and is only concerned with encryption of the block device – it does not interpret any data itself. It relies on user space front-ends to create and activate encrypted volumes, and manage authentication. At least two frontends are currently available: cryptsetup and cryptmount.


The cryptsetup command-line interface does not write any headers to the encrypted volume, and hence only provides the bare essentials: Encryption settings have to be provided every time the disk is mounted (although usually employed with automated scripts), and only one key can be used per volume; the symmetric encryption key is directly derived from the supplied passphrase. For these reasons, the use of cryptsetup is discouraged with plain passphrases.[4] However, the simplicity of cryptsetup makes it useful when combined with third-party software, for example, with smart card authentication.

cryptsetup also provides commands to deal with the Linux Unified Key Setup (LUKS) on-disk format. This format provides additional features such as key management and key stretching (using PBKDF2), and remembers encrypted volume configuration across reboots.[3][5]


The cryptmount interface is an alternative to the "cryptsetup" tool that allows any user to mount and unmount a dm-crypt file system when needed, without needing superuser privileges after the device has been configured by a superuser.


The fact that disk encryption (volume encryption) software like dm-crypt only deals with transparent encryption of abstract block devices gives it a lot of flexibility. This means that it can be used for encrypting any disk-backed file systems supported by the operating system, as well as swap space; write barriers implemented by file systems are preserved.[6][7] Encrypted volumes can be stored on disk partitions, logical volumes, whole disks as well as file-backed disk images (through the use of loop devices with the losetup utility). dm-crypt can also be configured to encrypt RAID volumes and LVM physical volumes.

dm-crypt can also be configured to provide pre-boot authentication through an initrd, thus encrypting all the data on a computer – except the bootloader, the kernel and the initrd image itself.[3]

When using the cipher block chaining mode of operation with predictable initialization vectors as other disk encryption software, the disk is vulnerable to watermarking attacks. This means that an attacker is able to detect the presence of specially crafted data on the disk. To address this problem in its predecessors, dm-crypt included provisions for more elaborate, disk encryption-specific modes of operation.[1] Support for ESSIV (encrypted salt-sector initialization vector) was introduced in Linux kernel version 2.6.10, LRW in 2.6.20 and XTS in 2.6.24. However, the CBC mode is still the default for compatibility with older volumes.

The Linux Crypto API includes support for most popular block ciphers and hash functions, which are all usable with dm-crypt.

Crypted FS support include LUKS volumes, loop-AES and since Linux kernel 3.13, the TrueCrypt target called "tcw".[8][9][10]


dm-crypt and LUKS encrypted disks can be accessed and used under MS Windows using FreeOTFE, provided that the filesystem used is supported by Windows (e.g. FAT/FAT32/NTFS).

Encrypted Ext2, Ext3 and Ext4 filesystems are supported by use of Ext2Fsd (all ext* versions) or Ext2 Installable File System for Windows (ext2 and ext3 only) and with FreeOTFE.

Cryptsetup/LUKS and the required infrastructure have also been implemented on the DragonFly BSD operating system.[11]

See also


  1. ^ a b Clemens Fruhwirth (2005-07-18). "New Methods in Hard Disk Encryption" (PDF).  
  2. ^ Mike Peters (2004-06-08). "Encrypting partitions using dm-crypt and the 2.6 series kernel". Retrieved 2012-02-20. 
  3. ^ a b c W. Michael Petullo (2007-01-18). "Disk encryption in Fedora: Past, present and future". Red Hat Magazine. Retrieved 2007-04-20. 
  4. ^ Markus Reichelt (2004-06-20). "Why Mainline Cryptoloop Should Not Be Used". Retrieved 2007-04-20. 
  5. ^ Clemens Fruhwirth (2004-07-15). "TKS1 – An anti-forensic, two level, and iterated key setup scheme" (PDF). draft. Retrieved 2006-12-12. 
  6. ^ Milan Broz (2012-04-24). "[dm-crypt] Does dm-crypt support journaling filesystem transactional guarantees?". Retrieved 2014-07-08. 
  7. ^ Mikulas Patocka (2009-06-22). "kernel/git/torvalds/linux.git". Linux kernel source tree. Retrieved 2014-07-08. 
  8. ^ "dm-crypt: Linux kernel device-mapper crypto target - IV generators". cryptsetup. 2014-01-11. Retrieved 2014-06-10. 
  9. ^ "dm-crypt: Linux kernel device-mapper crypto target[access date=2014-06-17". 
  10. ^ "[dm-devel] [PATCH 2/2] dm-crypt: Add TCW IV mode for old CBC TCRYPT containers.". Retrieved 2014-06-17. 
  11. ^ Alex Hornung (2010-07-23). "HEADS UP: dm, lvm, cryptsetup and initrd on master". 

External links

  • dm-crypt website
  • cryptsetup-luks website
  • cryptmount website
  • All about dm-crypt and LUKS on one page - a page covering dm-crypt/LUKS, starting with theory and ending with many practical examples about its usage.
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.