gpt4 book ai didi

c - A5/1安全算法3

转载 作者:行者123 更新时间:2023-11-30 17:21:45 27 4
gpt4 key购买 nike

在下面的链接中,我们有 A5/1 算法的教学实现。我知道它是如何工作的,但我不明白位奇偶校验(word x)函数的用途是什么?我知道它是什么,但请告诉我它是如何工作的。

typedef unsigned long word;
typedef word bit;

/* Calculate the parity of a 32-bit word, i.e. the sum of its bits modulo 2 */
bit parity(word x) {
x ^= x>>16;
x ^= x>>8;
x ^= x>>4;
x ^= x>>2;
x ^= x>>1;
return x&1;
}

算法链接: http://scard.org/gsm/a51.html

最佳答案

除了对类型大小做出一些可能没有根据的假设(现在,unsigned long 通常是 64 位,而不是 32 位)之外,它并不是非常硬的代码。

鉴于 x 是一个 32 位值,则:

  • x ^= x >> 16;x 的高 16 位与低 16 位进行异或。底部 16 位分别给出原始 32 位字中一对位的奇偶校验。

对底部 8 位重复此过程,然后是 4 位、2 位、1 位,这样最终最低有效位就是原始 32 位值的奇偶校验。

如果 unsigned long 是 64 位值,则代码仍会生成输入值的较低有效 32 位的奇偶校验。

关于c - A5/1安全算法3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28203934/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com