非对称加密:
概述(什么是非对称加密)
需要使用两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥),公钥用来进行加密数据,只有使用对应的私钥才能进行解密,因为加密和解密使用的是两个不同的密钥称为非对称加密,以RSA为代表。
RSA的来源:1977年三位麻省理工学院的数学家 罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起设计了一种算法,可以实现非对称加密。这个算法用他们三个人的名字命名,叫做RSA算法。
RSA数学原理:需要两个密钥,公开密钥简称公钥(publickey)和私有密钥简称私钥(privatekey)。公钥加密,私钥解密;私钥加密,公钥解密。这个加密算法就是伟大的RSA。
欧拉定理:如果两个正整数m和n互质,那么m的φ(n)次方减1,可以被n整除。
公式:mφ(n) mod n ≡ 1
费马小定理(欧拉定理的特殊情况)如果两个正整数m和n互质,而且n为质数!那么φ(n)结果就是n-1。
公式:m(n-1) mod n ≡ 1
公式转换:
注:m要小于n,才会成立
模反元素:如果两个正整数e和x互质,那么一定可以找到整数d,使用e*d -1被x整除,那么d就是e对于x的"模反元素"。
RSA算法:
me mode n = c 加密
cd mod n = m 解密
公钥: n和e 私钥: n和d 明文:m 密文:c
说明:
1 n会非常大,长度一般为1024个二进制位(目前人类已经分解的最大整数,232个十进制位,768个二进制位)。
2 由于需要求出φ(n),所以根据欧函数特点,最简单的方式n 由两个质数相乘得到: 质数:p1、p2,Φ(n) = (p1 -1) * (p2 - 1)。
3 最终由φ(n)得到e 和 d 。总共生成6个数字:p1、p2、n、φ(n)、e、d
RSA的安全:
除了公钥用到了n和e 其余的4个数字是不公开的。
目前破解RSA得到d的方式如下:要想求出私钥d。由于e*d = φ(n)*k + 1。要知道e和φ(n); e是知道。但是要得到φ(n),必须知道p1和p2。由n=p1*p2。只有将n因为分解才能算出
HASH:
概述:一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
对称加密:
概述:对称加密方式:明文通过密钥加密得到密文。密文通过密钥解密得到明文,加密与解密使用同一个密钥。
常见的对称加密算法有:
1 DES 数据加密标准(用得少,因为强度不够)
2 3DES 使用3个密钥,对相同的数据执行3次加密,强度增强。
3 AES 高级密码标准。
应用模式:
ECB(Electronic Code Book):电子密码本模式,每一块数据,独立加密。
最基本的加密模式,也就是通常理解的加密,相同的明文将永远加密成相同的密文,无初始向量,容易受到密码本重放攻击,一般情况下很少用。
CBC(Cipher Block Chaining):密码分组链接模式。使用一个密钥和一个初始化向量[IV]对数据执行加密。
明文被加密前要与前面的密文进行异或运算后再加密,因此只要选择不同的初始向量,相同的密文加密后会形成不同的密文,这是目前应用最广泛的模式。CBC加密后的密文是上下文相关的,但明文的错误不会传递到后续分组,但如果一个分组丢失,后面的分组将全部作废(同步错误)。
CBC可以有效的保证密文的完整性,如果一个数据块在传递是丢失或改变,后面的数据将无法正常解密。
非对称加密优缺点
优点:安全强度高,不易破解,公钥公开,私钥自己保存,不需要给别人。
缺点:加密的效率比较低,速度慢,不适合加密码大量数据。
对称加密码的优缺点
优点:算法公开、计算量小、加密速度快、加密效率高。
缺点:秘钥的管理和分发非常困难,不够安全。在数据传送前,发送方和接收方必须商定好秘钥,然后双方都必须要保存好秘钥,如果一方的秘钥被泄露,那么加密信息也就不安全了。
网友评论