.net – Windows DPAPI – 如何处理熵?

我正在使用Windows DPAPI为我加密一些敏感数据.密码存储注册表中.这一切都很好,但我想知道是否有人可以澄清我对.NET中的ProtectedData.Protect()提供的“熵”字节的理解.

‘熵’字节数组似乎类似于与其他加密方案一起使用的初始化向量或盐,但我看不到MSDN中熵字节的良好描述.代码示例我刚刚看到熵字节中的硬编码!

熵字节是否提供给ProtectedData.Protect()& ProtectedData.Unprotect类似于IV或盐?因此,熵字节是否可以安全地存储在密码旁边,还是会危及安全性?

熵是特定于正在保护数据的应用程序的次要密钥.如果我记得正确的一般想法是允许多个应用程序在单个用户帐户下加密数据,但仍然保持彼此之间的安全性.例如,您的应用程序可能会加密UserA下的数据.如果我的应用程序希望在UserA下解密该数据,那么DPAPI使用用户密钥确实没有什么可阻止我这样做.然而,如果您考虑应用程序特定的“熵”,那么我需要知道您的熵来解密任何数据以保护UserA.

熵可以被认为类似于盐,因为它是用于进一步抽取加密内容的附加密钥或秘密.与盐不同,您的应用程序的熵将需要在给定凭证下的每个加密操作保持不变.用盐,它通常最好尽可能多地改变它.

熵本质上是一个附加的关键,它应该像任何其他加密密钥一样对待.保持私密和安全.

BTW,我认为“熵”是为了这个目的而使用的一个残酷的话.像“差异化”这样的东西,或者甚至可能使一个像“独特者”一样的词会更好一些. :P非常混乱的术语使用.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...