Hash函数
用于构建数据的指纹,标识数据,将任意长度的数据输出为固定长度的消息,通过摘要算法。
计算函数又叫摘要算法,散列算法,哈希算法。
特性:
1,单向性,不可逆向运算,知道摘要计算结果,不能计算出原数据
2,弱抗碰撞性
3,强抗碰撞性
攻击方法:
1,穷举工具:典型的有“生日攻击”,产生若干明文消息,计算出消息摘要,然后进行对比,找到碰撞。
2,利用散列函数的代数结构:攻击函数的弱性质,有中间相遇攻击,修正分组攻击,差分分析攻击
SHA-1算法
输入长度小于2的64次方比特任意消息,输出160比特摘要。
SM3算法
是国家密码管理局发布的安全密码杂凑算法,采用Merkle-Damgard结构,把1-2的64次方比特消息,经过填充和迭代压缩,生成256长度的摘要。 可用于数字签名,验证,消息认证码,伪随机数生成等。
Hmac
一种基于密钥和散列函数进行消息认证的方法,要求通信双方共享密钥,约定算法。
公钥密码
公钥密码,加密和解密才有不同密钥,分别叫做公钥和私钥。
RSA密码
基于大素数分解,核心是模幂运算。
RSA算法可以实现数字签名和数据加密。
注:
加密:公钥加密,私钥解密
签名:私钥签名,公钥验签
RSA密钥长度大于1024位被认为是安全的。
这个地方符号比较难写,可以搜集一些例子。