PIM
PIM代表“个人迭代乘数”。它是VeraCrypt 1.12版本引入的一个参数,其值控制头部密钥推导函数使用的计算参数。该值可以通过密码对话框或命令行指定。
PIM的确切含义取决于所使用的密钥推导函数(KDF):
PBKDF2-HMAC密钥推导
使用PBKDF2-HMAC时,PIM值按如下方式控制迭代次数:
- 对于不使用SHA-512或Whirlpool的系统加密:迭代次数 = PIM x 2048
- 对于使用SHA-512或Whirlpool的系统加密:迭代次数 = 15000 + (PIM x 1000)
- 对于非系统加密和文件容器:迭代次数 = 15000 + (PIM x 1000)
Argon2id密钥推导
使用Argon2id时,PIM值同时控制内存成本和时间成本参数:
- 内存成本(m_cost),单位MiB:
m_cost(pim) = min(64 MiB + (pim - 1) * 32 MiB, 1024 MiB)
内存成本从64 MiB开始,每增加1个PIM增加32 MiB;当PIM达到31或更高时,上限为1024 MiB。
- 时间成本(t_cost),以迭代计:
如果PIM ≤ 31:t_cost(pim) = 3 + floor((pim - 1) / 3)
如果PIM > 31:t_cost(pim) = 13 + (pim - 31)
当PIM ≤ 31时,每增加3个PIM,时间成本增加1次迭代;当PIM > 31时,每增加1个PIM,时间成本增加1次迭代。
- 并行度:所有情况下固定为1个线程。
Argon2id示例:
- PIM = 12:内存成本 = 416 MiB,时间成本 = 6 次迭代
- PIM = 31:内存成本 = 1024 MiB,时间成本 = 13 次迭代
- PIM = 32:内存成本 = 1024 MiB,时间成本 = 14 次迭代
如果未指定PIM值,VeraCrypt将对PBKDF2-HMAC使用1.12版本之前的默认参数(请参阅
头部密钥推导)。对于Argon2id,默认参数相当于PIM = 12:
- PBKDF2-HMAC默认值:
- 对于使用SHA-256、BLAKE2s-256或Streebog的系统分区加密(引导加密),使用200000次迭代,这相当于PIM值为98。
- 对于使用SHA-512或Whirlpool的系统加密,使用500000次迭代,这相当于PIM值为485。
- 对于使用PBKDF2-HMAC的非系统加密和文件容器,使用500000次迭代,这相当于PIM值为485。
- Argon2id默认值:内存成本 = 416 MiB,时间成本 = 6 次迭代(相当于PIM = 12)
在1.12版本之前,VeraCrypt卷的安全性仅基于密码强度,因为VeraCrypt使用固定的迭代次数。
随着PIM的引入,VeraCrypt卷基于(密码,PIM,密钥推导函数)组合形成多维安全空间,可在控制挂载/引导操作性能的同时更灵活地调整所需的安全级别。
PIM的使用
不强制要求指定PIM。
在创建卷或更改密码时,用户可以通过选中“使用PIM”复选框来指定PIM值,这样GUI中会显示一个PIM字段,用户可以输入PIM值。
PIM被视为一个秘密值,每次用户都必须与密码一起输入。如果指定了错误的PIM值,挂载/引导操作将失败。
使用较高的PIM值可以通过提高KDF成本参数来增强安全性,但会导致挂载/引导时间变慢。
使用较小的PIM值,挂载/引导速度会更快,但如果使用弱密码,可能会降低安全性。
在创建卷或对系统进行加密时,当密码长度小于20个字符时,VeraCrypt会强制PIM值大于或等于某个最小值。进行此检查是为了确保对于短密码,安全级别至少等于空PIM提供的默认级别。
对于短密码,Argon2id卷的PIM最小值为
12,不使用SHA-512或Whirlpool的系统加密为
98,其他使用PBKDF2-HMAC的情况为
485。对于长度为20个字符及以上的密码,PIM最小值为
1。在所有情况下,将PIM留空或将其值设置为0将使VeraCrypt使用如
头部密钥推导部分所述的默认KDF参数。
使用自定义PIM值的动机可能包括:
- 添加一个额外的秘密参数(PIM),使攻击者必须猜测
- 通过使用较大的PIM值来提高安全级别,以抵御未来暴力攻击技术的发展。
- 通过使用较小的PIM值(对于Argon2id卷小于12,对于不使用SHA-512或Whirlpool的系统加密小于98,对于其他使用PBKDF2-HMAC的情况小于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) |
下一部分 >>