KCV值 - 3DES加密

KCV值 - 3DES加密

3-DES加密环境中的KCV(密钥检查值)是什么?关于什么是KCV以及它如何在3-DES加密中使用,是否有很好的文档?

“6.15钥匙检查值
 目的:该数据用于证明卡/处理器可以访问特定的DES密钥值 格式:二进制,3个字节
内容:DES密钥加密八个字节的零结果的最左边三个字节“(source
__
“任何DES密钥的密钥检查值将通过使用ECB 3DES加密8字节'00'来计算,并使用相关密钥”(source
__
“DES / 3DES密钥的密钥检查值(缩写为KCV或CV)是使用密钥加密16个十六进制零的结果。例如,单长度DES密钥0123456789ABCDEF的密钥检查值等于D5D44FF720683D0D。当以加密方式发送DES / 3DES密钥时,信息非常有用,并且通常由发送方发送,以确保收件人已正确接收密钥。 (source
__
对我而言,这似乎是某种checksum

 

KCV用于例如硬件安全设备的PKCS#11标准。想象一下,您需要导入密钥,可能是多个部分。然后,您需要验证导入是否成功。您只需检查一个块加密所有零(或其最左边部分)与先前计算的KCV值。由于对称算法应该对已知的纯文本/密文攻击无懈可击,因此您不会泄漏有关密钥的任何信息。

对于硬件安全设备,密钥通常不可提取;因此,它们可能不适用于散列方法,或者哈希方法本身甚至可能不可用。因此,对所有零进行密钥加密是创建安全校验和的好方法。对于其他密钥,例如RSA密钥,通常使用散列(SHA-1)代替加密来识别密钥的(值)。

在软件中,您只需创建一个仅包含零的块,然后执行ECB加密或CBC加密,并将IV设置为全零。然后取x字节作为KCV。 KCV中的字节数取决于使用的标准。如果使用少于3个字节,即使偶然也会遇到具有相同值的键。

请注意,KCV确实泄漏了一些信息;它显示了所有零的块的密文加密是什么样的。如果您使用随机IV执行CBC加密,那应该没什么关系。另一方面,如果使用带有零IV的CTR模式加密,则可能会泄漏密钥流的前3个字节(因此也会泄漏明文)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值