DES密钥,每个字节的最低比特为校验位(parity bit)。定义于ANSI X3.92-1981(现为ANSI INCITS 92-1981),第3.5节:
One bit in each 8-bit byte of the KEY may be utilized for error detection in key generation, distribution, and storage. Bits 8, 16,..., 64 are for use in ensuring that each byte is of odd parity.
DES密钥使用奇校验(odd parity),即一个字节的高7比特中,如果“1”的数量为奇数,则校验位为0;如果“1”的数量为偶数,则校验位为“1”。(也可以理解为:一个字节全部8个比特——也就是包括了校验位,“1”的数量必须为奇数。)
然而,现代计算机系统已经不再需要使用校验位了。
在智能卡系统中,DES密钥的校验位,通常这样处理:
1、校验位可任意设置;
2、8个(或16个等)校验位,用于存储密钥的算法、版本等信息。
无论哪种方法,在进行实际的DES运算时,均忽略校验位。
如字节B8(二进制1011 1000),在正确设置奇校验时,应为B9(二进制1011 1001)。
作为DES密钥使用时,B8=B9,二者在计算结果上并无差别。