认证技术中的常用认证算法主要包括SHA-1、RSA、HmacSHA1等。
1.SHA1算法
SHA1算法是建立在SHA-1函数之上的安全认证协议算法。SHA-1函数是通过美国国家标准技术局和安全局设计的与数字签名标准一起用的安全散列SHA,它有以下几个特征:
1)可以作用于一个最大长度不超过264位的数据块。
2)产生一个固定长度的输出(160位)。
3)对随意给定的x,H(x)计算相较容易,使软件或硬件的实现可行。
4)对随意给定码h找到x符合H(x)=h在计算上不可行。
5)对任意给定的数据块x,找到满足H(y)=B(x),但y≠x的y是非常困难的。
6)找到随意数据对(x,y),符合H(x)=H(y)在计算上是不可行的。
前3个特点是在消息认证的实际应用中所需要的。第4个特点是“单向”特性,即数据易正向生成验证码,但验证码反向恢复原数据却非常难。第5个特点保证对给定数据用替换数据生成相同的散列值非常难。第6个特点可防止如“生日攻击”等复杂类型的外来攻击,进一步加强SHA1算法抗强碰撞的能力。
2.RSA算法
RSA作为公钥加密体制中最重要的加解密协议之一。RSA利用大整数因数分解的数学困难问题来设计,目前,除暴力破解方式外,还未找到其他有效的破解方法。因此,RSA算法仍然可抵抗大多数针对密码的攻击,其借助私钥加密、公钥解密的方式完成对私钥持有者身份的认证过程。
3.HmacSHA1
HmacSHA1能有效防止数据在传输中被截获与篡改,确保了数据完整、可靠和安全。