TrueCrypt所支持的3种加密算法介绍
TrueCrypt支持的加密算法
TrueCrypt所支持的3种加密算法AES、Twofish、Serpent,其中AES名气比较大,而Twofish、Serpent则不太出名。其实这3种算法还是颇具渊源的。70年代以来DES是美国政府所采用的加密标准,但DES使用的56位密钥过短,随着电脑计算能力的不断提高,已经越来越不安全了,以现代计算能力,24小时内即可能破解DES。在90年代中期,美国国家标准与技术研究院(NIST)开始考虑用高级加密标准(Advanced Encryption Standard 即AES)替代DES。 AES是采用公开竞标的,NIST的要求是:候选算法使用128bit的区块;候选算法必须使用最小128bit长度的密钥,并且可以向上扩大,且可以使用128、192、256bit密钥;候选算法要足够快,最好和DES算法差不多快;候选算法必须免费,没有知识产权约束。可以提名专利算法,但是如果被选,必须成为免费使用许可。
最初有约15种算法被提交作为AES的候选算法,经过长时间筛选,NIST测试的算法减少到5个,分别为Rijndael、Serpent、 Twofish、MARS 和RC6。再次筛选后还剩Rijndael、Serpent、Twofish,这三种算法各有长短:
Serpent被认为最安全,而Rijndael速度最快,Twofish则居中。 最后NIST选择了Rijndael作为AES的算法。
TrueCrypt的测试也显示Rijndael的速度领先竞争对手很多。
TrueCrypt的哈希算法
哈希加密包括 RIPEMD-160、SHA-512 和 Whirlpool,而且可以在卷的创建、密码更改 以及文件产生时使用。但是SHA-512 和Whirlpool 符合NESSIE (New Euro-pean Schemes for Signatures, Integrity and Encryp-tion)标准,因为他们可以抵抗冲突,而 RIPEMD-160 不符合 NESSIE 标准,因为它的输出只有 160bit。
1.1 TrueCrypt 简介
TrueCrypt 是一个免费、开源的加密软件,支持 Windows Vista/Windows XP、Mac OS 和Linux 操作系统。它加密解密功能十分强大,提供了 AES、Serpent、Twofish 三种基本加密算法以及由三种基本算法组合产生的另外 AES-Twofish AES-Twofish-Serpent Serpent-AES Serpent-Twofish-AES Twofish-Serpent 级联的加密算法,也提供了 HMAC-SHA-512、
HMAC-RIPEMD-160、HMAC-Whirlpool 三种哈希算法。
1) TrueCrypt 是基于虚拟磁盘驱动的 普通的加密软件都是基于应用层的。需要加密的文件在应用层加密,然后存放在磁盘上。解密时也是从磁盘读出在应用层软件中解密。 而TrueCrypt 把加密解密模块放到虚拟磁盘驱动里,虚拟磁盘驱动注册为系统服务。当 TrueCrypt 创建、加载加密卷,实时加密解密文件时,TrueCrypt 应用层的操作调用内核相应指令,最终将应用层请求转变为虚拟磁盘驱动要完成的 IRP请求,虚拟磁盘驱动完成 I/O 请求。
2) TrueCrypt 具有实时性、透明性、安全性、实时性是指用户向卷文件对应的虚拟磁盘中写入、读出文件时,TrueCrypt 自动实时的对文件加解密,用于加密解密速度较快。透明性是指用户读写加密卷文件中的内容时,用户不知道文件已经被加解密。安全性是指对于文件的加密解密都是在内存中进行的, TrueCrypt不会把未加密的文件数据存放到磁盘上,并且加密完的文件没有任何标识显示是加密卷,极大的提高了数据加解密过程的安全。
3) TrueCrypt 提供了强大多样的加密方式:
TrueCrypt 加密方式主要有文件型加密、非系统分区或驱动器加密、系统分区或系统所在硬盘加密。
通过分析 TrueCrypt 源码,可知TrueCrypt整体结构分为四个主要模块:
A 界面管理模块。负责用户创建加密卷界面管理和用户加载加密卷界面管理向创建模块和加载模块传递用户选择的各种参数,如加密算法,哈希函数,文件系统等等。
B 创建模块。根据用户选择的创建参数,来创建相应的加密卷(包括普通的卷,磁盘分区,卷中的操作系统加密等) 。
C 加载模块。根据用户选择的各种加载参数,来加载相应的加密卷,形成相应的虚拟磁盘,供用户操作。
D 虚拟磁盘驱动程序。 TrueCrypt用户层的各种操作通过内核的I/O管理器转变为各种IRP请求。虚拟磁盘驱动相应文件系统驱动程序的 IRP 对虚拟磁盘(卷文件)进行相应的读写操作。