首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >KCV值- 3DES加密

KCV值- 3DES加密
EN

Stack Overflow用户
提问于 2012-07-16 23:09:09
回答 2查看 8.4K关注 0票数 2

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-16 23:22:07

"6.15密钥校验值

目的:该数据用于证明卡/处理器可以访问特定的DES密钥值。

格式:二进制,3字节

内容:用相关的DES密钥加密8字节零的结果的最左边的三个字节“(source)

__

“任何DES密钥的密钥校验值将通过使用ECB3DES和相关密钥加密8个字节'00‘来计算”(source)

__

“DES/3DES密钥的密钥校验值(缩写KCV或CV)是使用密钥加密16个十六进制零的结果。例如,单长DES密钥0123456789ABCDEF的密钥校验值等于D5D44FF720683D0D。当以加密方式传输DES/3DES密钥时,此信息很有用,通常由发送者发送,以确保接收者已正确接收密钥。”(source)

__

对我来说,这似乎是某种checksum

票数 6
EN

Stack Overflow用户

发布于 2012-07-17 02:37:40

KCV用于例如硬件安全设备的PKCS#11标准中。假设您需要导入密钥,可能会分成多个部分。然后,您需要验证导入是否成功。您只需根据先前计算的KCV值检查全零(或其最左侧部分)的块加密。由于对称算法被认为对已知的明文/密文攻击是无懈可击的,所以您不会泄露有关密钥的任何信息。

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

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

请注意,KCV确实泄漏了一些信息;它显示了密文加密全为0的块是什么样子的。如果您使用随机IV执行CBC加密,这不会有太大影响。另一方面,如果您使用CTR模式加密与零IV,您可能会泄漏密钥流的前3个字节(因此是明文)。

让我们与FTP保持一致:source (注: FTP)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11507155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档