一、加密技术
1、加密的两个核心组件
2、加密技术作用:
二、加解密技术原理
1、对称加密
2、非对称加密
(1)思考问题?
1)、有了非对称加密为什么还用对称加密?
2)、如何传递秘钥呢(解决秘钥分发问题,对称加密存在这个问题)?
4、数字信封(数据加密,验证接收方身份,数字信封结合数据签名)
5、什么是哈希函数、哈希函数特点
6、数字签名(数据验证,接收方验证发送方的身份,数字信封结合数据签名)
三、加密常见算法
1、对接加密算法:
(1)、流加密算法:
(2)、分组加密算法:分块加密
2、非对称加密算法
3、散列算法
一、加密技术
加密是利用数学方法将明文 (需要被隐蔽的数据) 转换为密文(不可读的数据)从而达到保护数据的目的。
1、加密的两个核心组件
加密的两个核心组件:算法、秘钥。
2、加密技术作用:
加密技术作用:是实现数据的保密性、完整性、鉴别性、不可抵赖性。
二、加解密技术原理
1、对称加密
对称加密:又称为共享密钥加密,它使用同一个密钥对数据进行加密和解密。
2、非对称加密
非对称加密:加解密使用两个不同的密钥,私钥加密公钥解密,公钥加密私钥解密,用来检验信息及其发送者的真实性和身份。
3、密钥
密钥: 公钥&私钥
(1)思考问题?
1)、有了非对称加密为什么还用对称加密?
2)、如何传递秘钥呢(解决秘钥分发问题,对称加密存在这个问题)?
有RSA和DH算法。
非对称加密适合小文件,大文件加密速度相对于对称加密慢很多。
4、数字信封(数据加密,验证接收方身份,数字信封结合数据签名)
对称秘钥加密数据,传递对称加密的公钥使用非对称加密进行(对称加密公钥不是很大)。
A用对称密钥加密数据,再用B的公钥封装对称密钥,B收到用私钥解密得到对称密钥,再用对称密钥解密业务数据。
5、什么是哈希函数、哈希函数特点
哈希函数(hash):做数据的一个完整性校验,哈希的特点有:
(1)、相同输入,相同输出:MD5,原始数据用MD5(123)=abc,那么不管谁用MD5(123)永远都是abc。
(2)、等长输出:MD5,MD5(123)=abc,MD5算出的哈希值长度都是固定的,不管原始数据有多大,计算出的长度是相同的(MD5的哈希值是固定128位)。
(3)、不可逆推:无法从哈希结果逆推出原数据。
(4)、雪崩效应:原本MD5(123456)=abcdef,这个时候MD5(1234567)得到的数据跟MD5(123456)没有一点关系MD5(1234567)=dg4,*as。由于微妙的变化导致结果发生天翻地覆的变化。
HMAC哈希信息验证码:带秘钥的哈希,传输哈希前先通过DH算法协商秘钥(全球唯一),秘钥不加密,参与哈希计算,A做完哈希后加上秘钥发送B,C由于没有秘钥,修改了数据发送给B也无法验证成功。
6、数字签名(数据验证,接收方验证发送方的身份,数字信封结合数据签名)
数字签名:用私钥加密的哈希值得到的密文就是签名,不可抵赖性。
(1)、A先使用哈希计算1G数据得出数据哈希值AJ。
(2)、A使用私钥加密哈希值AJ得到的签名发送给B。
(3)、B收到数据后,使用A的公钥解密签名,得到了一个哈希值。
(4)、B再对1G的数据进行一次哈希运算,如果B计算的哈希值和A发的哈希值相同,这1G数据是A发的。
三、加密常见算法
1、对接加密算法:
(1)、流加密算法:
1)、RC4:用在WiFi传输加密。
(2)、分组加密算法:分块加密
1)、DES标准加密算法:是一个函数,但是每次加密用56位的秘钥key加密64位长度的数据,不满足64位的最小倍数会进行填充。
2)、3DES:做3次DES,例如原始数据是ABC,使用A秘钥用DES加密ABC变成密文1ABC,用B秘钥解密A秘钥加密后的1ABC得出2ABC,再用A秘钥结合B秘钥解密后的2ABC加密得出3ABC。(整个计算过程用到2个56位的EDS加密)
3)、AES:AES-128,AES-192,AES-256.
4)、IDEA
5)、RC2、RC5、RC6
6)、SM1、SM4:国密算法。
2、非对称加密算法
(1)、DH:用来算秘钥的,DH算法一般用于双方协商出一个对称加密的密钥,即加密解密都是同一个密钥。实质是双方共享一些参数然后各自生成密钥,然后根据数学原理,各自生成的密钥是相同的,这个密钥不会涉及到在链路中传播,但是之前的参数的交互会涉及链路传输。
DH的目的就是在一个不安全的环境下,产生安全的秘钥(计算秘钥的算法,算秘钥的,不是用来加密的)。
A————B算秘钥过程:
1、A和B进行秘钥交换协商出一个P(P是素数,因式分解只能分解出自己,素数就是质数,最小的质数是2可以被1和本身分解)。
A的P=11,g=2(固定是2),B的P=11,g=2(固定是2)
A本地产生小x=3(素数),B本地产生y=2(素数)
mol取余数
A的大X=g的小x次方molP
B的大Y=g的小y次方molP
2、A把X=8发给B,B把Y=4发给A。
3、A算Z,Z=Y的小x次方molP,Z=9
B算算Z,Z=X的小y次方molP,Z=9
A和B算出来Z的值都是一样的,计算过程中双方各有小x和小y,小x和小y从头到尾都没发送出去,只是交互了大X和大Y(X和Y是DH的公开值),公开值攻击者抓到无所谓,私有x和y抓不到永远算不出来,动态计算P、小x、小y,利用数学难题。
DH1素数是768位
DH2素数是1048位
(2)、RSA:RSA公加密算法是1977年由Ron RivestAdi Shamirh和LenAdleman在(美国麻省理工学院)开发的RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。是第一个能同时用于加密和数字签名的算法。
(3)、DSA:DSA是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard)。在保证数据的完整性、私有性、不可抵赖性等方面起着非常重要的作用。DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。在DSA数字签名和认证中,发送者使用自己的私钥对文件或消息进行签名接受者收到消息后使用发送者的公钥来验证签名的真实性。DSA只是一种算法,和RSA不同之处在于它不能用作加密和解密,也不能进行密钥交换,只用于签名,它比RSA要快很多。
目前比较常用的公钥加密算法,主要包含DH ()Diffie-Hellman)、RSA (Ron Rivest、Adi Shamirh.LenAdleman)和DSA (Digital Signature Algorithm)算法。
3、散列算法
散列算法:把任意长度的输入变换成固定长度的输出。挖矿就是一个算哈希的过程(SHA-256)。
常见散列算法
(1)、MD5 (Message Digest Algorithm 5)
(2)、SHA (Secure Hash Algorithm)
(3)、SM3 (Senior Middle 3)