图片内容参看我的网站:www.waltersun.cn
引言
随着信息化的推进,信息安全越来越受到人们的重视。这篇文章简单介绍了常用的密码算法、原理、使用场景,简单比较国密算法,可作为业务使用的入门指导。
消息摘要
消息摘要算法,是指把消息映射到固定长度编码(结果的长度视摘要算法而定,比如sha-1是20字节,sha256和sm3是32字节)的一种单向、不可逆(即不能从摘要恢复消息)的算法,可用于校验消息完整性。一般原理是把消息分块,通过多轮迭代混淆,得到最终结果。算法在设计上要求给定消息m1,很难找到不同的消息m2,使得hash(m1)=hash(m2)。由于这个特性,摘要算法可以防止消息传输过程中失真或被篡改。
举个例子,Alice要发一段消息mA给Bob,Alice担心传输过程中发生意外,比如网线松动、电磁干扰,导致Bob收到的消息不完整或不正确,那么Alice可以把消息的摘要hA和消息mA一起发给Bob,Bob收到h和m后(因为hA和mA在传输过程中都有可能失真,所以这里记为h和m),计算hB=hash(m),如果hB=h,那么可以认为消息正确传输,即hB=hA=h,m=mA。
但是上述过程不能防止中间人篡改消息,如果中间人劫持消息,它可以篡改消