密码学初探

概述

花了一天多粗略的翻了《图解密码技术》,图解系列真是入门神书,能够迅速的建立起一门学科的体系,强烈推荐。


mark

一些基本的概念

密码算法和密钥

密码算法和密钥是分开的两个概念。比如凯撒密码中,将字母表中的字母平移这个操作是密码算法,而平移的字母数量就是密钥。

密钥空间

在某个密码算法下,所有的密钥就是密钥空间。

暴力破解

将密钥空间中所有的密钥全部试一遍,就是暴力破解。

重放攻击

窃听并保存A发往B的通信包,重复发送给B。

mark

此时,Bob银行会收到多次Alice银行转账数据,且每次验证都是正确的。消息认证码、数字签名都不能防御

防御手段

  • 序号:每个消息都有一个编号
  • 时间戳:发送者和接受者的时钟必须一致,而且考虑通信的延迟,必须在时间的判断上留下缓冲,于是多多少少还是会存在可以进行重放攻击的空间。
  • nonce:通信之前,接受者都向发送者发送一个一次性的随机数,称为nonce,发送者在消息中包含这个nonce并计算MAC值。

密码学家的工具箱

在本书中,最重要的概念就是密码学家的工具箱,全书都是围绕工具箱中的各个工具以及各个工具的相互关系来讲述的。看懂了这个工具箱,密码学就入门了,而后各个工具都是一门博大精深的学问,需要再花时间细细研读。

  • 对称密码
  • 公钥密码
  • 单向散列函数
  • 消息认证码
  • 数字签名
  • 伪随机数生成器

下面是我认为书中最重要的两个图:

mark

图一:信息安全面临的威胁和用来应对的密码技术

mark

图二:各个密码技术之间的关系

对称密码

定义

对称密码是指加密和解密时使用同一密钥的方式。

例子

比如加密和解密都用异或的方式。(对同一个比特序列进行两次XOR之后就会回到最初的状态)

A是比特序列,B是随机生成的比特序列:

  • 将明文A用密钥B进行加密,得到密文(A XOR B)
  • 将密文(A XOR B)用密钥B进行解密,得到明文A

密码算法

  • DES
  • 三重DES
  • AES

缺点

使用一种密钥空间巨大,且在算法上没有弱点的对称密码,就可以通过密文来确保明文的机密性。巨大的密钥空间能够抵御暴力破解,算法上没有弱点可以抵御其他类型的攻击。但是对称密码仍然有弱点:

  • 密钥的配送问题:如何将密钥安全地发送给接受者。(通过公钥解决)

公钥密码

公钥密码用于解决密钥配送问题。

公钥密码无需向接受者配送解密的密钥,是密码学上最伟大的发明。

公钥和私钥

  • 公钥即加密密钥,可以任意公开,使用时应将公钥发送给需要使用公钥进行加密的通信对象。
  • 私钥即解密密钥,绝对不能公开。

密码算法

  • RSA

缺点

  • 公钥密码的处理速度只有对称密码的几百分之一。(通过混合密码系统解决)
  • 公钥认证问题:需要判断得到的公钥是否合法。(通过证书解决)

混合密码系统

混合密码系统即用对称密码来加密明文,用公钥密码来加密对称密码中所使用的密钥。

会话密钥:为本次通信而生成的临时密钥,一般是通过伪随机数生成器生成的。会话密钥是对称密码的密钥,同时也是公钥密码的明文。

加密图:

mark

解密图:

mark

单向散列函数

单向散列函数用于检测文件的完整性,即文件有没有被篡改。

性质

  • 根据任意长度的消息计算出固定长度的散列值
  • 能够快速计算出散列值
  • 消息不同散列值也不同:抗碰撞性
  • 单向性:无法通过散列值反算出消息

算法

  • MD4
  • MD5
  • SHA-1

缺点

  • 无法识别伪装:无法检查出发送者的身份的真实性。(通过消息认证码解决)

消息认证码(对称密钥+单向散列)

使用消息认证码可以判断消息是否被篡改,以及是否有人伪装成发送者发送了该消息。

可以这么理解:消息认证码是一种与密钥相关的单向散列函数。输入包括任意长度的数据和一个发送者与接收者之间共享的密钥,输出固定长度的数据,这个数据称为MAC值。

认证

要计算MAC值必须持有共享密钥,没有共享密钥的人就无法计算MAC值,消息认证码是利用这种性质来完成认证的。

完整性

和单向散列函数的散列值一样,哪怕消息中发生1比特的变化,MAC值也会发生变化,消息认证码正式利用这一性质来确认完整性的。

算法

  • HMAC

缺点

  • 依然存在密钥配送问题
  • 无法防止否认(通过数字签名来解决)

数字签名(公钥+单向散列)

数字签名是将公钥加密和解密反过来用。即用私钥加密,用公钥解密。

用私钥加密相当于生成签名
用公钥解密相当于验证签名

数字签名的方法

  • 直接对消息签名
  • 对消息的散列值签名
mark

图中省略了Alice发送公钥给Bob的过程。

缺点

  • 无法验证公钥是属于真正的发送者的(通过证书来解决)

证书

所谓证书,就是将公钥当做一条消息,由一个可信的第三方对其签名后所得到的公钥。

证书用来对公钥的合法性进行证明。

具体步骤

下图中默认Alice持有的认证机构的公钥是可信的。

mark

PKI

PKI即公钥基础设施(public-key infrastructure)是为了能够更有效的运行公钥而制定的一系列规范和规格的总称。
组成元素:

  • 用户:使用PKI的人
  • 认证机构(certificate authority):颁发证书的人
  • 仓库:保证证书的数据库

用户

  • 希望使用PKI注册自己的公钥的人
  • 希望使用已注册的公钥的人。

认证机构

  • 生成密钥对(也可由用户生成)
  • 在注册公钥时对本人身份进行认证
  • 生成并颁发证书
  • 作废证书

仓库

证书的层级结构

认证机构的公钥也需要认证,所以用一个认证机构来验证另一个认证机构的公钥,这样的关系可以迭代好几层。最终我们需要一个“可信的种子”,因为不可能在完全不可信的状态下创造出信任关系。

伪随机数生成器

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

推荐阅读更多精彩内容

  • 前言 《图解密码技术》一书介绍了很多关于密码的知识,通读一遍需要不少时间。为了方便学习,我对书中关键的部分进行了总...
    咖枯阅读 7,096评论 1 25
  • 对称加密与非对称加密 按照密钥的使用形式,加密算法可以分为对称加密和非对称加密(又叫公钥加密)。对称加密在加密和解...
    邱振源的博客阅读 1,177评论 0 2
  • 对称加密: DES DES是1977年美国联邦信息处理标准中使用的一种对称密码技术,曾今被美国和其他国家政府银行使...
    十三亿少女梦丶阅读 1,103评论 0 10
  • 密码学是学习区块链技术最重要的课程之一。 因为区块链技术,包括比特币,它们之所以这么安全,最重要的基石就是密码,包...
    黄星七年阅读 813评论 1 22
  • 这篇文章主要讲述在Mobile BI(移动商务智能)开发过程中,在网络通信、数据存储、登录验证这几个方面涉及的加密...
    雨_树阅读 2,316评论 0 6