1.一种最简单散列函数的每一个数据块都按比特异或。为什么对于这种散列函数的有效性为1-2-n(数据出错却不改变散列值的概率是 2−n)?
正确答案:
答:因为每个 n 比特的散列值都有相同的出错概率1/2,所以数据出错却不改变散列值的概率是
2−n,,因此判断消息完整性正确的概率(即有效的概率)为1-2-n。
2.一种最简单散列函数的每一个数据块都按比特异或。为什么对于这种散列函数随着可预测的格式化数据增多,函数的有效性越来越差?
正确答案:
答:如:在大多数标准的文本文件中,每个 8 位字节的高阶比特总是0。如果使用 128
比特的散列值,则作用于该类型数据块的散列函数的有效(数据出错却不改变散列值)概率为1-2-112而不是1-2-128。
3.消息认证码常见的构建方法有哪些?
正确答案:
这里是引用
答:两种方法: 1)散列函数+密钥(加密密钥或当作秘密值) 2)直接用分组加密算法
4.散列函数加上密钥来构建MAC有以哪些优势?
正确答案:
答:散列函数(如SHA-1)加上密钥开发MAC有以下优势: 采用软件实现时,加密散列函数执行速度比传统密码算法(如DES)快。
有许多共享的密码学Hash函数代码库。
5.