读书笔记之《图解密码技术》

来源:互联网 发布:linux u盘安装windows 编辑:程序博客网 时间:2024/04/29 14:46

图解密码技术读书笔记

介绍

由于自己主要负责开发过公司的支付系统,因此也接触过第三方支付网关(支付宝、微信支付等),其中数据信息的传递都是经过加密的。并且支持多种加密方式有MD5、RSA等。严格意义上讲MD5不能算作加密,只能算作校验数据完整性。

最近看到一本介绍密码技术的书籍,由日本人写的一本《图解密码技术》,看完之后收益匪浅,将复杂的技术用简单诙谐的语言来描述这是很不容易的。

推荐指数:★★★★☆

图解密码技术

将明文内容生成密文的过程称作加密,将密文内容解析成明文内容称作解密。

密码技术分类

1、对称密码2、非对称密码(公钥密码)3、单向散列函数4、消息认证码5、数字签名6、伪随机数生成器

对称密码

对称密码加密和解密过程


对称密码加密和解密过程


对称密码的加密方和解密方都需要知道密钥,他们所持有的密钥是相同的。所以对称密码的关键在于密钥使用一种密钥空间巨大,且在算法上没有弱点的对称密码,就可以通过密文来确保明文的机密性。巨大的密钥空间能够抵御暴力破解,算法上没有弱点可以抵御其它类型的攻击。然而,使用对称密钥进行通信时,还会出现密钥的配送问题,即如何将密钥安全的发送给接受者。为了解决密钥配送问题,我们需要使用到公钥密码技术。备注:有时我们使用对称密码时,为了避免配送密钥问题,我们一开始就约定密钥协商好然后保存在双方,每次都不改变密钥,那么每次就不用配送密钥了。本人在开发微信支付时,微信是支持这种方式的。

在对称密码中,由于加密和解密的密钥都是相同的,因此必须向接收者配送密钥。用于解密的密钥必须被配送给接收者,这一问题称为密钥配送问题。如果使用公钥密码,则无需向接收者配送用于解密的密钥,这样就解决了密钥配送问题。公钥密码是密码学历史上伟大的发明。

解决密钥配送问题有如下几种方法1、通过事先共享密钥来解决2、通过密钥分配中心来解决3、通过Diffie-Hellman密钥交换来解决4、通过公钥密码来解决

公钥密码

公钥密码的关键点在于加密时使用的密钥和解密时使用的密钥是不同的。准确解释公钥密码:使用公钥加密,使用私钥解密。

对称密码和公钥密码处理过程


对称密码和公钥密码处理过程


公钥密码中加密密钥(公钥)和解密密钥(私钥)1、发送者只需要公钥2、接收者只需要私钥3、私钥一定要保存好,不能被窃听者获取4、公钥即使被窃听者获取也没关系

公钥密码存在的小问题1、公钥认证问题2、公钥密码处理效率没有对称密码高但是这两个小缺点并不影响公钥密码的广泛使用使用公钥密码能够解决密钥配送问题。公钥密码是密码学界的一项革命性的发明,现代计算机和互联网中所使用的密码技术都得益于公钥密码对称密码通过对将明文转换为复杂形势来保证其机密性,相对的公钥密码则是基于数学上困难的问题来保证机密性。例如RSA就是利用大整数的质数分解问题的困难度。因此对称密码和公钥密码源于两种完全不同的思路。即使已经有了公钥密码,对称密码也不会消失。公钥密码的运行速度远低于对称密码,因此在一般的通信过程中,往往配合使用这两种密码。即用对称密码提高处理速度,用公钥解决密钥配送问题。

公钥密码最典型的实现是RSA

//TODO RSA算法值得去学习一下

RSA加密算法


RSA加密算法


单向散列函数

单向散列函数锁保证的并不是机密性,而是数据完整性。完整性指的是数据不是伪造没有被篡改过。单向散列函数是一种保证完整性的密码技术。实际应用比如:软件发布者通常会一同发布软件的MD5或SHA1的值,以便下载使用者确认下载的软件是否被篡改过。

备注:理解散列函数很有帮助

消息认证码

消息认证码不仅能够保证完整性,还能够提供认证机制//TODO 待补充

数字签名

数字签名是一种能够确保完整性、提供认证并防止否认的密码技术//TODO 待补充

伪随机数生成器

伪随机数生成器是一种能够模拟产生随机数的算法.实际上随机数承担着密钥生成的重要职责.例如web中的SSL/TLS通信时,会生成一个仅用于当前通信的临时密钥。

密码种类总结

密码种类说明


密码种类说明


密码与信息安全常识

1、不要使用保密的密码算法2、使用低强度的密码比不进行任何加密更危险3、任何密码总有一天会被破解4、密码知识信息安全的一部

总结

学习密码技术应该按照划分种类来学习,其中对称密码和公钥密码需要重点掌握。

书评

本书使用简单诙谐的语言来讲述了密码技术,看着像一本历史书,看着也比较轻松,当然里面也涉及到一些数学知识。

参考

1、图解密码技术

0 0
原创粉丝点击