使用密码技术可以达到以下目的:
信息的保密性:防止用户的数据被读取
数据完整性:防止数据被修改
身份验证:确保数据发自特定的一方
公钥加密(public key encryption)
公钥加密是利用一对特殊的密钥(key)进行的信息加密手段。这对密钥中的一把称为公钥(public key),另一把称为私钥(private key)。它们具备以下两个基本性质。
- 1. 公钥加密的信息智能被私钥解开
- 2. 无法有效地通过公钥反推出私钥
比如,张三和李四约定采用公钥加密通讯。张三自己保管私钥,发布公钥。李四使用张三提供的公钥加密信息,发给张三。该信息只能被拥有私钥的张三解读。这是李四向张三发送信息,同样,张三先李四发送信息,需要事先知道李四的公钥。
一般认为,以现有的技术水平,采用可靠的公钥加密算法(RSA最为著名)加密的信息,在私钥未泄露的前提下,是无法破解的,RSA基于大数质因数分解的困难性。
公钥加密系统的密钥生成和分发需要经过极其严格的措施才能保障公钥加密的安全性。
在正常使用中,不会直接用公钥加密内容,一般都是用公钥保护会话密钥,用于建立通话,起到认证并听懂对方。然后创建并且交换会话密钥(对称加密)来保护实际内容,后续都基于会话密钥完成。
DSA(Digital Signature Algorithm):数字签名算法
ECC:椭圆曲线密码编码学
非对称加密过程:
小张有公钥A和私钥A。公钥A公开,小李想要和小张进行保密通讯,使用公钥A对信息进行加密,这个信息只能被小张的私钥A解密,别人截获此信息,也无法知道内容。
小张准备采用数字签名方法来回信,首先,将信息的内容用hash生产一个摘要(digest),小张使用自己的私钥对摘要进行加密,生产数字签名(signature),将此签名附着在信件的下面。小李收到信件后,用公钥A对摘要进行解密,恢复digest,同时,对收到信息文本进行hash,生成一个摘要,与接收到的进行对比,如果一致,则证明信件未被修改过,且为小张发过来了。
对称加密
对称密钥加密系统的加解密均采用同一把秘密钥匙,通讯双方都必须获得这把钥匙,并保持钥匙的秘密
DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。升级版为3DES,对同一个数据块,使用三种不同的密钥进行DES加密。
AES:新一代对称加密方法,基于排列和置换运算,是迭代的、对称密钥分组的密码,可使用128、192、256位密钥,并且用128位(16个字节)分组加密和解密数据。
MD5:
SHA:
验证信息是否被修改
散列算法,散列是信息的提炼,通常其长度要比信息小的多,且为一个固定长度。散列值的不可逆性,雪崩效应,防冲突。单向散列函数一般用于产生消息摘要,常见的有
MD5(Message Digest Alogrithm 5):由RSA开发的一种单向散列算法
SHA(Secure Hash Algorithm):可以对任意长度的数据运算生产一个160位的数值,升级版为SHA-1.
通过散列算法可以实现数字签名,将要传送的明文通过hash运算生产一个摘要,摘要加密后与明文一起传送给接收方。接收方将接受的明文产生新的报文摘要,与发送方摘要解密后比较,一致,则认为明文未被改动。
端到端加密
端到端的加密,一份消息在发送前,就进行加密,直到它到达最终收件人的整个过程中,一直以最初的加密形式传递,中间并未有解开过。古代有火漆封口的类比的例子。
安全领域,不是有了最先进的软硬件,就安全了。攻防都是有成本的。
来源:https://www.cnblogs.com/cherishui/p/3753336.html