加密方式
- 摘要加密
消息摘要就是把任意长度的输入揉和而产生长度固定的信息;
其加密过程不需要密钥;
经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文;
消息摘要算法不存在密钥的管理和分发问题,适合于分布式网络上使用;
特点:
- 无论输入的信息有多长、计算出来的消息摘要的长度总是固定的
- 消息摘要看起来是随机的,这些数据看上去是胡乱的杂凑在一起的
- 只要输入的消息不同,对其进行摘要后的产生的摘要消息也必不相同,但相同的输入必会产生相同的输出
- 只能进行正向的消息摘要,无法从摘要中恢复任何消息,甚至根本就找不到任何与原信息相关的信息;
- 虽然碰撞是肯定存在的,但好的摘要算法很难从中找到碰撞,即无法找到两条不同的消息,但他们的摘要相同;
常见的摘要算法:哈希、散列、CRC、MD5、SHA等
应用场景:数字签名、密码加密、文件完整性的校验、版权等应用场景
对称加密:
加密和解密使用相同的密钥的加密算法
速度快,通常在消息发送方需要大量数据时使用
密钥是控制加密及解密过程的指令
算法是一组规则,规定如何进行加密和解密
离线的大量数据加密(用于存储的)
常见的加密算法
DES、3DES、AES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等
非对称加密:
非对称加密算法是一种密钥的保密方法,加密和解密使用两个不同的密钥,公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密
算法强度复杂
加密解密速度没有对称密钥算法的速度快
应用场景
数字签名(私钥加密,公钥验证)
常见的加密算法
RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)
数字签名
数字签名(又称公钥数字签名)是一种类似写在纸上的普通的物理签名,是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法
数字签名通常使用私钥生成签名,使用公钥验证签名
签名及验证过程
发送方用一个哈希函数(例如MD5)从报文文本中生成报文摘要,然后用自己的私钥对这个摘要进行加密
将加密后的摘要作为报文的数字签名和报文一起发送给接收方
接收方用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要
接收方再用发送方的公用密钥来对报文附加的数字签名进行解密
如果这两个摘要相同、接收方就能确认该数字签名是发送方的
芯片为啥需要加密:
芯片在开发应用过程中,防止嵌入式软硬件被克隆的情况,
根据客户平台以及环境,提供和芯片相对应的加密库文件,客户只需要用主程序调用加密接口函数就可以跟加密芯片通讯。