近期跟新人面试沟通时,发现许多人对浏览器如何与服务器交互、如何进行数据传输等问题无法作出解答,在此特别梳理一下密码学的基本概念,希望能对大家了解密码学相关基础知识有所帮助 。
【如何快速搞懂密码学】一、基本概念
名词解释:
cryptology 密码学
plaintext 明文
cipher-text 密文
encrypt 加密
decrypt 解密
crytography 密码
confidentiality 机密性、加密等级
Bit、byte:比特(Bit)与字节(byte)的关系是8个Bit = 1byte
编码:将数据(文本、音频、视频)映射为比特序列的过程 。
密钥:固定长度的字符串 。通过密钥及加解密算法,对给定的数据进行加密和解密 。
对称加密:在加密和解密的过程中,使用相同的密钥,称为对称加密 。
非对称加密:在加解密的过程中,使用不同的密钥(私钥、公钥),称为非对称加密 。
加解密流程:明文+密钥à加密算法=>密文+密钥à解密算法=>明文
二、现代分组密码操作模式
分组模式对加解密至关重要 。现代分组密码的操作模式分为5种:电子密码本模式(ECB),密码分组链接模式(CBC),密码反馈模式(CFB),输出反馈模式(OFB),以及计数器模式(CTR)
ECB(Electronic Codebook)
明文按照分组密码的分组大小(n 比特)被分为 N 个分组,对于每个分组使用相同的密钥加密 。
ECB加密过程如下:
文章插图
ECB解密过程如下:
文章插图
CBC(Cipher Block Chaining)加密过程:
文章插图
CBC解密过程:
文章插图
CFB
文章插图
OFB
文章插图
CTR
文章插图
三、对称加密算法
1. DES(DataEncryptionStandard)
DES对密钥长度的要求为56个Bit,每一个byte需要一个比特的校验位 。以DES算法的CBC分组模式讲解阐述一下该算法,对于CBC分组方式,会面临分组长度不够的问题,具体处理方法如下:
(1)计算出要填充的字节数,例如填充为2
(2)需要填充的字节为2
(3)当密文解密时,将最后一个字节的值取出,转换成整形数值
(4)结果(3)得到的数值就是要删除的字节数
2. 3DES算法
3DES是DES加密算法的一种模式,它使用3条64Bit的密钥对数据进行三次加密,其加密流程如下:
文章插图
3. AES
AES算法需要的密钥长度有128、192、256Bit三种,分组长度理论上三种情况16字节、24字节、32字节 。当密钥长度为256Bit时,效率低,但机密性最高 。在任何加解密算法中,分组长度和密钥长度一定是相等的 。AES采用CBC的分组模式,密钥长度16个字节,初始化向量必须保证为16个字节 。
四、非对称加密
用秘钥进行解密时,想要将密钥安全的发送给接收者、解决密钥配送问题,就需要采用非对称加密技术 。
非对称加密技术的密钥分为两部分:公钥与私钥 。公钥可以公开,私钥是隐私的,不能泄露 。
非对称加密技术,加密与解密采用不同的密钥(公私钥) 。公钥进行加密,需要用私钥进行解密;私钥加密,需要用公钥进行解密 。
非对称加密的图示流程:
文章插图
非对称加密算法(RSA)
RSA名字的由来是由此算法的三位开发者的名字RonRivest, AdiShamir和LeonaraAdleman的姓氏首字母组成 。
非对称加密算法简单案例:
1.公钥加密公式:
推荐阅读
- 一篇文章彻底搞懂base64编码原理
- 自媒体账号突然被降权限流怎么办?新手做到这几点,快速恢复推荐量!
- 深入理解热度算法:如何做好内容推荐?
- 降权了怎么办 降权了怎么能快速恢复
- 这是一篇关于如何成为一名AI算法工程师的长文
- 传奇世界|传奇世界:如何快速度过新手期。
- 运势|2022办公室小人方位在哪 如何化解小人
- 山东省|你如何看待自己的工作?
- 甩干机如何正确使用
- 风水入门之如何看房子风水好坏