《图解密码技术》读后总结

前言

最近工作中用到了加密相关的技术点,非常头疼,常被公钥加密、签名等一系列概念搞的头大,所以买来《图解密码技术》这本书,想大概的梳理一下密码技术的入门知识。

读完之后对基本的密码技术概念有了大概的了解,所以写下这篇博客来做一下读后的总结,希望可以帮到大家。

密码技术的发展

这里咱们不谈密码学的具体发展轨迹,我们来回忆一下日常遇到的跟加密相关的技术,从最开始的对称加密,到公钥加密,再到混合加密系统,认证签名等,其实密码技术一步步的发展都是为了解决一个个信息安全面临的问题,也就是弥补上代(用上代这个词可能不合适)加密方式的缺陷。

咱们先对几种加密方式做一个总的梳理。看一下下面这个图吧。

密码学家一直在和信息交换过程中存在的中间人作斗争,从最开始的单纯的为了防止窃听使用对称机密,但是为了解决对称加密存在的秘钥配送问题而出现的公钥加密,解决了防窃听,还有存在的信息被篡改的问题,中间者伪装发送者的问题,甚至消息否认的问题,每个问题都产生了对应的解决方式,我们下面一一来说。

机密性

对称加密和公钥加密(非对称加密)

基本概念大家都是知道的,对称加密是双方使用相同的秘钥进行加密解密,我们常提到的DES,三重DES,AES都是对称密码算法。我们应该注意这三者都根据明文和秘钥生成密文的算法。

但是对称加密存在秘钥配送问题。就是我怎么样把秘钥给到跟我通信的人,当然了两个人直接见面通过U盘拷贝可以,但是现实场景不允许我见到每一个跟我通信的人来配送秘钥,同时因为双方都是用同一个密码,如果我们在网络上交换秘钥,被中间人获取到秘钥,那他就完全可以窃听我们的通信了。所以就产生了公钥加密。

公钥加密就是我生成一个秘钥对,一公钥一私钥,公钥和私钥之间存在强烈的数学对应关系,书中有说到,但是毕竟我们数学功力薄弱,不太能很深的理解里面的数学关系,有兴趣的大家可以自己查一下。只要大家记住一个秘钥对,公钥加密的只有对应的私钥能解密,同时私钥加密的也只有对应的公钥能解密。(这句话很重要)

我们在使用公钥加密时,私钥自己保留,公钥公布出去,任何人都可以获得到。这样有人给我发消息,就可以使用我提供给他的公钥进行加密,然后密文只有我的私钥可以解密,这样就可以一定程度解决窃听问题。因为中间人劫持到密文之后没有私钥来解密。

RSA就是我们使用的公钥密码算法。

混合密码系统

公钥密码的处理速度远远的低于对称密码。为了解决这个问题产生了混合密码系统。

这个图大家应该能很容易看懂,伪随机数生成器生成了会话密钥,其实也就是混合系统中的对称加密密钥,我们的明文直接用这个密钥进行加密,得到消息的密文,因为是对称加密所以说速度很快。

同时使用接受者的公钥对这个会话密码进行加密,得到会话密码的密文。同时组合这两种密文,发给接受者。

解密的图我就不用上了,大家可以反推一下,接受者先使用自己的秘钥解密会话密码密码,得到会话密码的明文,然后在使用这个密码解密消息。也许有小伙伴会说,这不是也使用到了公钥加密嘛,怎么速度不也慢?公钥加密来加密一个会话密码肯定比加密通信的消息的工作量小啊 ~

这里要注意的是,在每次通信中,会话密码对会变的,所以我们的主要任务还是要保证私钥的安全,因为这个会话密码如果泄露只是影响到了一次通信,但是私钥如果泄露,所有的通信就会被破译了。

公钥加密问题

公钥加密也存在中间人攻击问题,比如你的朋友在向你索要你的公钥的时候被人监听,在你给朋友发送公钥时,中间人截获到你的公钥,同时把自己的公钥发给了你的朋友,这时你的朋友收到的公钥就是中间人的了。然后你的朋友给你发了一个“我喜欢你”,然后用中间人的公钥进行了加密,在发送消息给你的时候,中间人依然可以劫持到,然后他用自己的私钥解密出来了明文“我喜欢你”,再用他劫持到的你的公钥给你发了一条“我讨厌你”,然后收到消息并解密的你........ 大家应该明白我的意思了,这类问题的解决方式下面会说到。

完整性和认证

单向散列函数

我们有一个文件需要保存,但是一顿时间之后在用的时候,我们怎么样验证这个文件是否被人篡改过?

有一个方法就是我把文件拷贝到U盘里面,随身携带,但是如果文件很大呢,每次这样是不是很不方便。这样就用到了单向散列函数。

单向散列函数有一个输入一个输出,输入称为消息,输出称为散列值。单向散列函数也称为信息摘要函数,哈希函数或者杂凑函数。比如我们熟悉的SHA-1SHA-256等SHA开头的那一些。当然了这里的消息不一定是非要是文字,也可以是图像音视频文件,毕竟所有文件最终都是二进制。

这样我们就不需要保存文件了,只要保存了散列值,然后对比散列值就可以了。

消息认证码 (MAC)

完整性解决消息是否被篡改的问题,消息认证指的是“消息来自正确的发送者”这一性质。

其实很容易理解,就是双方使用共享密钥,然后利用HMAC此类使用单向散列函数构建消息验证码的方法,对通信的消息计算出MAC值,然后把消息和MAC值一起传递,再接收放使用共享密钥也计算出MAC值,然后对比来认证。

消息认证码也有问题,例如“第三方证明”和“防止否认”,这些大家可以自己去上网查一下解释的列子,这种东西举例子来说更容易懂,占用篇幅太大,本文省略。

数字签名

数字签名大家可以当做是现实中的盖章,使用数字签名可以识别篡改和伪装,还可以防止否认。

签名和验签

其实签名和验签还是用到我们的公钥加密。上面我们提到过公钥和私钥之间的关系,公钥加密私钥解密,同时私钥加密也只能用它对应的公钥解密。私钥加密其实就是签名,对应公钥解密也就是验签。因为私钥只有一个人持有,所以使用该私钥加密的消息相当于被该使用者签名,同时我们使用它对应的公钥如果能正确的解密,那就肯定消息是这个人发送的,这样也就实现了防否认。

下面是数字签名方法

不多做解释了,消息明文和签名完之后的密文一起发送,这样既可以防篡改又可以防否认了。

上面这种方法是对消息直接进行签名,如果消息过大会非常的耗时,这样我们可以使用对散列值进行签名的方法来代替对消息直接签名。

好的,到这时我们说到数字签名基本解决了很多问题,识别篡改和伪装,还可以防否认,但是我们使用数字签名要有一个大前提,那就是用于验证签名的公钥必须属于真正的发送者!

这样是不是感觉进入到了死循环呢,解决了一堆的问题之后,回到了公钥的合法性这个问题上。这就要使用证书了。

证书

公钥证书和我们的现实中的证件类似的,都包含姓名、组织、邮箱、地址等个人信息,以后属于此人的公钥,并由认证机构施加数字签名。只要看到公钥证书,我们就可以知道认证机构认定此公钥属于此人。

下面给一个简单的例子吧

也许会有人问,那怎么确认这个认证机构是不是权威的呢?

确实会有这种问题,认证也不简单的发一个证书而已,有一套完整的公钥基础设施(PKI)。

简单的提一下PKI包括三个要素,用户、认证机构和仓库,也涉及到注册证书和作废证书一些逻辑,大家自己查阅吧,我就不继续说了。

写在最后

本片文章简单的梳理了一些密码技术的基础,从对称加密到数字签名、证书,希望笔者讲的还算清晰,也希望本文能给大家带来一些帮助。

密码技术在我们的工作中有很多的应用,比如众所周知的SSL/TLS(在此之上承载http就是我们的https)。我们之后再找时间专门的来说一下https吧。

感谢大家读完我的文章。

文章使用图片来自《图解密码技术》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容

  • 工作或者面试过程中我们总会接触到密码相关的技术和问题,本篇文章是我对近期阅读《图解密码技术》的总结,这本书很值得推...
    乐Coding阅读 1,450评论 0 5
  • 先放一张以太坊的架构图: 在学习的过程中主要是采用单个模块了学习了解的,包括P2P,密码学,网络,协议等。直接开...
    麻脸大叔阅读 11,195评论 1 10
  • ## 密码技术在网络传输安全上的应用 随着互联网电子商务和网络支付的飞速发展,互联网安全已经是当前最重要的因素之一...
    進撃超人阅读 1,638评论 0 1
  • 前言 文中首先解释加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的...
    sunny冲哥阅读 2,986评论 0 2
  • 数字证书原理 - 无恙 - 博客园 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明...
    拉肚阅读 1,662评论 0 3