密码学错题总结

发展史

古典密码学(1949年之前)
特点:数据的安全基于算法的保密。
方法:代换、置换(凯撒密码)
标志产物:enigma 密码机
最早的密码技术:斯巴达棒
里程碑:转子密码机

近代密码学(1949~1975)
特点:数据的安全基于密匙而不是算法的保密。
1949香农编写了《保密系统的通信理论》奠定了近代密码学的基础。

现代密码学(1976年以后)
特点:解决了密匙分发和管理的问题,密码学真正在商业中广泛应用。
1976年,罗纳尔多、阿迪、里昂纳多,在麻省理工推动了公钥加密技术的革新发展。

典型应用.

信息安全要素特征相应技术
机密性窃听、非法窃取信息、敏感资料泄露对称加密、非对称加密、混合加密、数字信封
完整性篡改、重放攻击、破坏消息认证码、哈希函数、数字签名、数据加密
可鉴别性冒名口令、共享秘密、数字签名、数字证书
不可否认性事后否认自己行为数字签名、证据储存
授权与访问控制非法存取资料、越权访问属性证书、访问控制

流密码特性
加密速度快
密匙和明文一样长
序列密码易被篡改
明文与密匙按位进行异或

数字证书组成
PKI:公钥基础设施
CA:核心负责签发证书、更新证书、管理证书机构、黑名单认证、在线认证。
RA:受理证书的申请工作,提供证书生命周期维护工作。
证书库:证书的存放,储存。

加解密的并行运算
在加密时支持并行运算的有:ECB、CTR
在解密时支持并行运算的有:ECB、CBC、CFB、CTR。

分组加密
就是支持对称加密的有
DES、AES、SM4、Blowfish、SM1、SM7、ZUC(祖冲之)
非对称加密:
RSA、SM2、SM9
摘要算法;
MD5、SM3、hash算法、SHA

HTTPS流程

1.浏览器发送ClientHello
其中包含了浏览器支持的TSL协议的版本,支持的加密算法,压缩算法等。同时浏览器端生成一个随机数,一起发送给服务器。

2.服务器返回ServerHello
(1)确认TSL协议版本,确定一个双方都支持的加密算法
(2)发送服务器的证书,发送一个服务器端生成的随机数。(如果访问的网站出于安全性的考虑,要求访问者也提供证书的话会在这一步发出请求。)

3.浏览器拿到证书后验证该证书是否是可信任的,如果证书可信任,那么其中的公钥也是可信的。
(1)浏览器生成第三个随机数 pre key,将pre key使用服务器的公钥加密,发送回服务器
(2)编码改变通知,告知服务器接下来将使用选择的加密算法进行加密通信
(3)将此前发送过的所有信息的摘要加密后发送给服务器,供服务器进行加密通道验证。最后发出客户端握手阶段结束信号。

4.服务器接收到对方发来的pre key后,此时通信双方都拥有了三个随机数(前两个是明文发送的,第三个pre key 是非对称加密发送的),由这三个随机数双方可以计算得到两个相同的对称密钥,服务器使用这一密钥验证加密通道后,向客户端发送服务器发出:
(1)编码改变通知:告知接下来的通信将使用加密通信
(2)服务器握手阶段结束信号。

至此握手阶段结束,双方接下来使用普通的http协议进行通信,由三个随机数生成的对称密钥加密内容。

1.整个过程中靠证书体系为通信双方提供身份信任。
2.通信双方共生成了三个随机数能最大限度地避免伪随机,保证了生成的对称密钥难以被暴力破解。
3.第三个随机数的传输使用非对称加密,保证了双方对称密钥的私密性。
4.整个通信中,只有pre key的发送使用了非对称加密,之后的加密通信都采用对称加密,最大限度地保证了通信效率。

https是采用对称加密和非对称加密相结合的方式来进行安全认证的。对称加密用来加密所要发送的信息,非对称加密用来传输对称加密的秘钥算法等信息

数字证书

首先,服务器把他的公钥和个人信息用Hash算法生成一个消息摘要,这个Hash算法有个好的特点就是只要输入的数据有一点点变化,那么生成的消息摘要就会发生巨变。 这样就可以防止别人修改原始的内容。然后再将这个消息摘要通过认证中心(CA)的私钥进行加密,形成数字签名

在这里插入图片描述接着再把数字签名和原始信息(主机B得公钥和信息)合并 ,形成一个新的东西,叫做数字证书

在这里插入图片描述当服务器把这个数字证书发给客户端时,客户端用相同的Hash算法对原始信息生成消息摘要,再用CA的公钥对数字签名进行解密,得到CA创建消息摘要,然后进行对比,看有没有改变。如果一样,说明公钥没人改,也就是说此时的公钥就是服务器的公钥

不过这样做的前提是得信任CA,这些CA本身也有证书来证明自己的身份,并且CA的信用是像树一样分级的,高层的CA给底层的CA做信用背书,而操作系统/浏览器中会内置一些顶层的CA的证书,相当于你自动信任了他们。 这些顶层的CA证书一定得安全地放入操作系统/浏览器当中,否则世界大乱。你可以打开浏览器, 从设置中可以找到“受信任的根证书”

在这里插入图片描述
如上图所示

(1)第 ③ 步时,客户端说:(咱们后续回话采用对称加密吧,这是对称加密的算法和对称密钥)这段话用公钥进行加密,然后传给服务器

(2)服务器收到信息后,用私钥解密,提取出对称加密算法和对称密钥后,服务器说:(好的)对称密钥加密

(3)后续两者之间信息的传输就可以使用对称加密的方式了

遇到的问题:

(1)客户端如何获得公钥

(2)如何确认服务器是真实的而不是黑客

第四步:获取公钥与确认服务器身份

在这里插入图片描述1、获取公钥

(1)提供一个下载公钥的地址,回话前让客户端去下载。(缺点:下载地址有可能是假的;客户端每次在回话前都先去下载公钥也很麻烦)

(2)回话开始时,服务器把公钥发给客户端(缺点:黑客冒充服务器,发送给客户端假的公钥)

2、那有没有一种方式既可以安全的获取公钥,又能防止黑客冒充呢? 那就需要用到终极武器了:SSL 证书

在这里插入图片描述
如上图所示,在第 ② 步时服务器发送了一个SSL证书给客户端,SSL 证书中包含的具体内容有:

(1)证书的发布机构CA

(2)证书的有效期

(3)公钥

(4)证书所有者

(5)签名

3、客户端在接受到服务端发来的SSL证书时,会对证书的真伪进行校验,以浏览器为例说明如下:

(1)首先浏览器读取证书中的证书所有者、有效期等信息进行一一校验

(2)浏览器开始查找操作系统中已内置的受信任的证书发布机构CA,与服务器发来的证书中的颁发者CA比对,用于校验证书是否为合法机构颁发

(3)如果找不到,浏览器就会报错,说明服务器发来的证书是不可信任的。

(4)如果找到,那么浏览器就会从操作系统中取出 颁发者CA 的公钥,然后对服务器发来的证书里面的签名进行解密

(5)浏览器使用相同的hash算法计算出服务器发来的证书的hash值,将这个计算的hash值与证书中签名做对比

(6)对比结果一致,则证明服务器发来的证书合法,没有被冒充

(7)此时浏览器就可以读取证书中的公钥,用于后续加密了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值