技术文章articles

TrueCrypt的原理

 

超时代手机视频加密软件:http://www.360drm.com/iphonejiami/ 整理转载


1)TrueCrypt随机数产生RandomNuderGenerator(RNG)


Random Number Generator(RNG)是一个内存中的随机数产生器。它在TrueCrypt中发挥着重要作用。RNG将产生各种密钥,其中最主要的是加密卷首部分的卷首密钥和以后实时加解密过程中的主次密钥。RNG还将产生卷首前512字节的 “盐”和密钥文件.用于基于PBKDF2的用户 口令的实现中。同时为了隐藏卷文件中重要内容的大小.卷文件通常在创建的过程中填充临时加密过的随机数.而这些随机数也是RNG产生的。在Win—dows平台下RNG产生的随机数是RNG实时收集 Windows操作系统的各种数据并通过一定方式的运算得到的。


2)TrueCrypt中实时加解密密钥

对加密卷内的文件进行读写操作时都需要加解密,而密钥存放的位置和受保护的程度决定了加密文件的安全性。True—Crypt把主次密钥(实时加解密时的密钥)存放在加密卷的卷首(512字节)的第 256至511字节。而卷首的512字节由不同于主次密钥的卷首密钥加密的。卷首密钥得到的理论基础是PKCS#5(基于I=1令的密码系统规范2.o)中的密钥导出函数PBKDF2.得出的密钥可以有效的防范字典攻击。PBKDF2主要公式是:DK=PBKDF2(P,S,C,dkLen),其中DK是最终导出的密钥,参数P是口令(一个字节串)参数s是“盐”(一个字节串)参数c是迭代的次数.参数dkLen是导出密钥的任意长度。一般来说P就是用户输入的口令,而TrueCrypt为保证用户口令的安全对参数P做了修改。用“用户口令+口令密钥文件”方式得到新的用户口令。口令密钥文件是TrueCrypt的一大亮点.它即可以由Tme—Crypt自己随机生成。又可以是用户提供的任意格式任意大小的文件,如图片文件、Mp3文件等。并不是文件的所有数据都起作用,只有文件的前 1048576字节f1MB1的数据才作为有用数据进行运算。TrueCrypt对 口令密钥文件的数量也没有限制。

PBKDF2中对分组的操作是基于基本 的伪随机 函数的,True—Crypt中提供 了三种这 样的函数 HMAC—SHA-512、HMAC—RIPEMD-160、HMAC—Whirlpool。


3)TrueCrypt隐藏卷

隐藏卷形象的来说就是 “嵌套”在普通加密卷里边的。这样设计考虑了用户的安全需求。当用户被胁迫解密加密卷时用户可以把隐藏加密卷的 “外套”普通加密卷解密,透露一些无关紧要的信息,而真正的受保护的信息则隐藏在隐藏卷中,得以保护。由此可见隐藏卷的创建过程必须是:首先创建一个普通卷然后在普通卷里创建一个隐藏卷。需要注意的是普通卷和普通卷里的隐藏卷的用户口令必须是不同的。在加载卷时TrueCrypt根据用户 口令来判断是加载普通卷还是普通卷里的隐藏卷。所以用户在胁迫的情况下可以告诉普通卷的口令。来保护信息。


4)TrueCrypt加密卷的创建和加载


加密卷的创建过程如下:用户选择创建参数,包括加密算法 、哈希函数、文件系统、加密卷大小等;按照卷首格式在内存中创建卷首:根据用户选择的文件系统格式化加密卷,并向卷内填充随机数:创建备份卷首。

加密卷的加载就是把加密卷虚拟成一个虚拟磁盘。用户通过向磁盘内读写文件.实现加解密.

收缩
  • 电话咨询

  • 4000-186-360
  • 扫一扫 关注微信