首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DES奇偶校验位

DES奇偶校验位
EN

Cryptography用户
提问于 2019-05-22 01:21:19
回答 1查看 1.5K关注 0票数 2

该密钥名义上存储或传输为8个字节,每个字节具有奇数奇偶校验。根据ANSI X3.92-1981 (现称ANSI INCITS 92-1981),第3.5节:密钥的每个8位字节中的一个位可用于密钥生成、分配和存储中的错误检测。第8、16、.、64位用于确保每个字节具有奇偶校验。

据我所知,维基百科的文本,在DES的每一个字节中,基本上只有6位,因为第七位是由奇偶决定的。这是否意味着DES实际上只有2^48个可能的密钥(8个奇偶校验位,8个由于奇偶校验而确定的密钥和48个随机密钥)?

EN

回答 1

Cryptography用户

发布于 2019-05-22 03:59:38

不你不对。用于“错误检测”的每个字节中的位是奇偶校验位。注意,位通常被奇怪地计算,对于第一个最左边的位--通常是最重要的位--使用偏移量为1而不是0。

因此,如果您有一个字节数组,那么每个字节中每一个最不重要的位都是奇偶校验位。此位的设置方式使每个字节在操作后设置了奇数位数。换句话说,如果其他比特的计数是偶数,则设置它,如果没有,则设置未设置。或者,如果所有0位或1位的数量相等,就会翻转--这相当于相同的东西。

因此,假设您有以下单个DES键:

代码语言:javascript
复制
pos: 1234 5678 9 .. etc. .... .... .... .... .... .... .... .... .... .... .... ....
bin: 0000_0000 0000_0001 0000_0010 0000_0011 0000_0100 0000_0101 0000_0110 0000_0111
hex:    0    0    0    1    0    2    0    3    0    4    0    5    0    6    0    7
1's:         0         1         1         2         1         2         2         3

结果是,在奇偶校验调整之后:

代码语言:javascript
复制
pos: 1234 5678 9 .. etc. .... ...P .... ...P .... ...P .... ...P .... ...P .... ...P
bin: 0000_0001 0000_0001 0000_0010 0000_0010 0000_0100 0000_0100 0000_0111 0000_0111
hex:    0    1    0    1    0    2    0    2    0    4    0    4    0    7    0    7
1's:         1         1         1         1         1         1         3         3

因此,由于有8个字节,每个字节中有一个用于奇偶校验,每个字节有7位用于密码本身。有64 /8=8字节,每个字节7位,8*7= 56位有效密钥大小。

奇偶校验调整和验证取决于库,但通常需要至少显示8个完整字节/ 64位。

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

https://crypto.stackexchange.com/questions/70736

复制
相关文章

相似问题

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