PIM
PIM代表“个人迭代乘数”。它是VeraCrypt 1.12版本引入的一个参数,其值控制着头部密钥推导函数使用的迭代次数。该值可以通过密码对话框或命令行指定。
当指定了PIM值时,迭代次数的计算方式如下:
- 对于不使用SHA - 512或Whirlpool的系统加密:迭代次数 = PIM x 2048
- 对于使用SHA - 512或Whirlpool的系统加密:迭代次数 = 15000 + (PIM x 1000)
- 对于非系统加密和文件容器:迭代次数 = 15000 + (PIM x 1000)
如果未指定PIM值,VeraCrypt将使用1.12版本之前的默认迭代次数(请参阅
头部密钥推导)。这可以总结如下:
- 对于使用SHA - 256、BLAKE2s - 256或Streebog的系统分区加密(引导加密),使用200000次迭代,这相当于PIM值为98。
- 对于使用SHA - 512或Whirlpool的系统加密,使用500000次迭代,这相当于PIM值为485。
- 对于非系统加密和文件容器,所有推导算法将使用500000次迭代,这相当于PIM值为485。
在1.12版本之前,VeraCrypt卷的安全性仅基于密码强度,因为VeraCrypt使用固定的迭代次数。
随着PIM的引入,VeraCrypt的卷在基于(密码,PIM)对的二维安全空间中具有更高的灵活性,可在控制挂载/引导操作性能的同时调整所需的安全级别。
PIM的使用
不强制要求指定PIM。
在创建卷或更改密码时,用户可以通过选中“使用PIM”复选框来指定PIM值,这样GUI中会显示一个PIM字段,用户可以输入PIM值。
PIM被视为一个秘密值,每次用户都必须与密码一起输入。如果指定了错误的PIM值,挂载/引导操作将失败。
使用较高的PIM值可以通过增加迭代次数来提高安全性,但会导致挂载/引导时间变慢。
使用较小的PIM值,挂载/引导速度会更快,但如果使用弱密码,可能会降低安全性。
在创建卷或对系统进行加密时,当密码长度小于20个字符时,VeraCrypt会强制PIM值大于或等于某个最小值。进行此检查是为了确保对于短密码,安全级别至少等于空PIM提供的默认级别。
对于短密码,不使用SHA - 512或Whirlpool的系统加密的PIM最小值为
98,其他情况的PIM最小值为
485。对于长度为20个字符及以上的密码,PIM最小值为
1。在所有情况下,将PIM留空或将其值设置为0将使VeraCrypt使用如
头部密钥推导部分所述的默认高迭代次数。
使用自定义PIM值的动机可能包括:
- 添加一个额外的秘密参数(PIM),使攻击者必须猜测
- 通过使用较大的PIM值来提高安全级别,以抵御未来暴力攻击技术的发展。
- 通过使用较小的PIM值(对于不使用SHA - 512或Whirlpool的系统加密小于98,对于其他情况小于485)来加快引导或挂载速度
以下屏幕截图展示了使用PIM值为231挂载卷的步骤:
更改/清除PIM
可以使用更改密码功能来更改或清除卷或系统加密的PIM。以下屏幕截图展示了一个将PIM从空默认值更改为值为3的示例(由于密码长度超过20个字符,这是可行的)。为此,用户必须首先在“新”部分中勾选“使用PIM”复选框以显示PIM字段。
普通卷情况
_VeraCrypt_ChangePIM_Step1.png) |
_VeraCrypt_ChangePIM_Step2.png)
|
系统加密情况
_VeraCrypt_ChangePIM_System_Step1.png) |
_VeraCrypt_ChangePIM_System_Step2.png) |
下一部分 >>