1. 加密和解密
1. 加密三要素是什么?
答:明文/密文、密钥、加密算法。
2. 加密三要素相互之间如何配合?
答:明文/密文 * 加密算法 + 密钥 = 密文/明文;
3. 加密的方法有哪些?
答:对称加密与非对称加密
2. 对称加密
4. 什么是对称加密?特点?
答:对称加密是指双方使用同一个密钥,既可以加密也可以解密。
特点:加密效率高,速度快,通常发送大量数据时使用;加密强度低;密钥分发困难,因为需要约定好相同的密钥,而且若与多个用户发送数据,都需要不同的密钥,就需要保管大量的密钥成为负担。
5. DES加密的方式?
答:密钥8byte,将数据分组,每组8byte,对数据进行加密算法与密钥运算加密。
6. 3DES加密的方式?特点?
答:密钥24byte分三组每组8byte,数据依然每组8byte, 对数据进行加密算法与第一组密钥加密,再用第二组密钥解密,再用第三组密钥加密。三组密钥不同,因此第二组解密得到的结果并非原始数据。、
特点:安全但效率低;
7. AES算法加密方式?特点?
答:密钥长度16、24、32byte,字节越大加密程度越高;将数据分成128bit每块进行逐块加密,加密后的密文与明文长度相同。API用Open SSL。
8. 如何解决密钥分发困难问题?
答:通过非对称加密将对称加密的密钥协商好。
3.非对称加密
9. 什么是非对称加密?
答:非对称加密是指由密钥对即公钥与私钥组成,公钥可以分发,私钥不能泄露。公钥私钥相互加密解密。
10. 非对称加密的特点?
答:效率较低,加密强度高,因为密钥比对称加密的长度长。与对称加密相对。
11. 常用非对称加密算法?使用场景?
答:RSA加密算法。用户密钥交换和数字签名。
12. RSA算法如何实现密钥交换?
答:
(1)主机A生成非对称密钥,将公钥发送给B;
(2)主机B生成对称密钥,通过公钥加密后发送给A;
(3)主机A通过私钥解密B发送的对称密钥,得到对称加密密钥;
4. 哈希算法
13. 什么是哈希算法?
答:可以将任意长度数据转换为固定长度数据(不同哈希算法长度不同);有很强的碰撞性(不同数据的哈希运算结果不同);运算不可逆(无法通过结果得到原始数据)。
注意:哈希算法并非加密算法,其知识生成了一个散列值来代表文件。
14. 哈希运算的结果?
答:称为哈希值/散列值/指纹。
15. 散列值的形式?原因?
答:散列值表现为是一串16进制数,但实质是一堆二进制数值但无法显示,为了直观显示,将二进制数值转为16进制数。
16. 常用的哈希算法?特点?
答:MD4/MD5:散列值长度16byte,碰撞性已经被攻破;SHA1:散列值长度20byte;SHA2:包含有SHA224/SHA256/SHA384/SHA512,其后缀代表所占bit数,即占用后缀/8byte大小。
17. 散列值的应用场景?
答:如向百度网盘上传数据时,若服务器中已有该文件,则会在服务器数据库中存由该数据的散列值,上传该数据时就可以秒传,但实际上并没有将本地的文件传到网盘中。
18. 什么是消息认证码HMAC?
答:将原始数据与密钥一同进行哈希运算,得到的散列值就是消息认证码。及(原始数据+密钥)*哈希运算 = 消息认证码。
19. 为什么需要消息认证码?原理?
答:为了验证数据是否被篡改。
当A送数据helloworld+helloworld的散列值给B,若发送途中被C拦截,B将数据修改位“你好世界”并重新计算散列值后发给B,B将原始数据哈希运算后后发现与得到的你好世界的散列值相同,但实际数据已不是helloworld。
但若发送的是原始数据+消息认证码,C即便截取了也无法修改,因为C无法得知密钥是多少;即便C修改为你好世界,B得到数据后将你好世界带入密钥进行哈希运算,得到的散列值与消息认证码不同,就可知道数据已被篡改。
20. 消息认证码的弊端?
答:密钥分发问题。因为消息认证码的哈希运算需要双方拥有相同的密钥,即需要先进性对称加密。
21. 为什么要数字签名?
答:数字签名是为了某数据属于某人。
22. 如何实现数字签名?
答:
(1)将原始数据哈希运算的散列值进行私钥加密;
(2)将原始数据后加密文发送出去;
(3)将得到的数据拆分原始数据和密文;
(4)对原始数据哈希运算得到散列值;
(5)将密文通过公钥解密后对比(4)得到的散列值;
(6)相同则校验成功。
5. Open SSL
23. 什么是OpenSSL?
答:其封装了主要的密码算法、常用的密钥和SSL协议及证书封装管理功能,是一个安全套接字层的密码库。
24. 什么是SSL?
答:是安全套接层协议,可以在internet上提供秘密性传输。