python 密码学示例——理解哈希(Hash)算法
Hash 是密码学安全性的基石,它引入了单向函数和指纹的概念。简单来说,信息的保密性确保除授权人员以外的任何人都无法读取该消息,信息的完整性则确保除授权人员以外的任何人都无法修改该消息。哈希函数的 preimage 是指能够生成同一个特定指纹的所有输入的合集。这意味着原始输入可以轻易被修改而不影响指纹数据,则该指纹作为信息完整性的验证条件就失去了意义。collision resistance 的意义在于,无法故意找出两套符合同一指纹的输入以达到混淆的目的。这得益于一种称为 avalanche property 的特性:输入的微小变化总可以在输出中产生巨大的无法预测的差异。以 MD5 算法的暴力破解为例,后者往往需要做 2^128 次尝试,而前者只需要 2^64 次尝试。
用户评论