Hello,密码学:第一部分,密码学的基本概念

密码学有着深刻的数学背景,看似一门高高在上的贵族知识体系。能够吧啦吧啦一些密码学的名词术语,有助于迅速建立满满的逼格。

掌握密码的钥匙

因此,在这套笔记的第一部分,汇总一些基本的密码学概念:

1)密码
2)单向散列
3)消息认证码
4)数字签名
5)数字证书
6)伪随机数生成器
7)密码学工具箱
8)隐写术
9)正确认知信息安全

为了方便理解,定义几个角色,后面会时不时的进行引用。其实,他(她)们都是经典密码学著作中约定俗成的著名人物。

  • Alice:漂亮姑娘
  • Bob:帅气小伙
  • Eve:偷窥癖,热衷于窃听通信内容
  • Mallory:破坏王,喜欢伪造信息,妨碍正常通信
  • Trent:可信的第三方
  • Victor:验证者

基本概念一:密码

Alice 和 Bob 正在热恋中,难免发送一些肉麻的消息。消息会在多台通信设备间中转,很有可能被 Eve 偷看。于是 Alice 和 Bob 对消息进行了加密处理,即使被 Eve 窃听,其获取的也是密文,无法得知具体的消息内容。也就是说,密码保证了信息的 机密性

从明文生成密文的步骤,称为 加密算法 ,将密文还原为明文的步骤,称为 解密算法 ,加密算法和解密算法统称为 密码算法

密码算法由两个重要的部分组成,一个是计算步骤,一个是密钥,基本原理如下图所示:

密码算法

在现代密码算法思想中,密码算法应该可以公开,但密钥必须严格保密。这就好比门锁制造商会用相同方法批量生产门锁,但每个门锁都配套独有的钥匙,一旦钥匙丢失,级别再强的门锁也可以被轻易打开。

密码算法分为 对称密码算法非对称密码算法 ,后者也常常称为 公钥密码算法 ,二者的本质区别是 加密与解密过程是否使用相同的密钥

对称密码算法:加密和解密时采用同一密钥,如下图所示:

对称密码算法

非对称密码算法:加密和解密时采用不同密钥,如下图所示:

非对称密码算法

非对称密码算法体系是20世纪70年代出现的,而现代计算机和互联网安全体系,很大程度是基于非对称密码算法体系构建起来的。当然,现代安全体系往往会结合非对称密码算法和对称密码算法的优势,形成了混合密码算法体系。

基本概念二:单项散列

如果你仔细观察,在一些提供软件下载的网站中,除了提供二进制的目标文件,还往往声明一个MD5或SHA字符串。这说明软件发布者具备安全意识,担心有人篡改其发布的软件,在其中植入一些恶意程序。这个字符串就是用单项散列函数计算出来的散列值,散列值也被形象的称为 “数据指纹”

现实生活中,侦查员通过将犯罪现场遗留的指纹与嫌疑人的指纹进行比对来确定是否存在关联,而计算机也可以利用数据指纹来确认两段二进制数据是否完全一致。我们不需要一一对比二进制数据,只需要一一比对其数据指纹即可。单项散列函数能够保证不同的二进制序列产生不同的数据指纹 。

总结成一句话:单项散列函数保证的不是数据的机密性,而是数据的完整性,或者说不可篡改性。

基本概念三:消息认证码

消息认证码(MAC,Message Authentication Code)是一种能够保证数据完整性和提供认证的密码技术,其主要作用是在保证数据完整性之外,确认 消息是否来自期望的通信对象

基本概念四:数字签名

在通信的过程中,保证了数据完整性,对通信对象进行了认证还不够,通信双方还可能对发送的消息进行 “否认” 。比如 Alice 向 Bob 写了一封信,但后来又有点后悔,谎称“当初根本没有写过这封信”,这种行为就称为“否认”。

能够确保完整性、提供认证并防止否认的技术,就是 “数字签名” 。顾名思义,就是对自己发送的内容进行签字,只不过采用的是密码技术。Alice 在信的内容之后签上自己的名字发给 Bob,Bob 收到后对改签名进行 签名验证 ,验证通过后,就代表契约生效,Alice 事后也无法进行否认。

我之前参考大牛阮一峰的Blog,写过一篇关于数字签名和数字证书的笔记,文章链接为:《数字签名与数字证书》

  1. Bob 有两把钥匙,一把叫做公钥,一把叫做私钥。
  1. Bob 把公钥给了他的朋友们,Pat、Doug、Susan 每人都有一把。
  1. Susan 想给 Bob 写一封密信,用 Bob 的公钥进行加密即可。而 Bob 用私钥进行解密。只要 Bob 的私钥不泄漏,别人就无法打开 Susan 的这封密信。
  1. Bob 给 Susan 回信,为了说明这封信就是自己写的,需要给这封信加盖一个印记,好比皇帝下的圣旨必须加印玉玺是一个道理:
  • 第一步,Bob 对回信内容进行 Hash 计算,生成 Digest(摘要)。这里要说明一下,一旦有人篡改了信件内容,Hash 算法保证了摘要一定会发生变化,而且也不可能通过摘要推算信件内容。
  • 第二步,Bob 用私钥对这个摘要进行加密,生成了数字签名。
  • 第三步,Bob 把数字签名添加到信件上,好比增加一句 “此致,XXX敬上”。
  • 第四步,Bob 把签了名的信件发送给 Susan。

  • 第五步,Susan 收到信件后,用 Bob 的公钥解密数字签名,得到信件摘要 A,同时也对信件内容再进行 Hash 计算得到一份摘要 B,对比两份摘要,如果内容完全一致,证明信件内容没有被篡改过,而且确实由 Bob 发出。

基本概念五:数字证书

通过数字证书,能够证实信件来源于可信的一方,然而,如果 Doug 想假冒 Bob 和 Susan 进行通信怎么办?继续沿用上一节的例子:

  1. Doug 可能会偷偷使用 Susan 的电脑,将 Bob 的公钥换成自己的公钥。而 Susan 没有发觉使用的公钥已经是 Doug 的了,而 Doug 就用自己的私钥进行上述的数字签名过程,伪装 Bob 与 Susan 进行通信。

  2. 而 Susan 终于发现事情不对劲,感觉自己使用的公钥有问题,于是她想到一个办法,希望 Bob 能够到一个权威机构对自己的公钥进行公证,这个权威结构也就是 “证书中心(Certificate Authority,简称CA)” 。证书中心于是用自己的私钥,对 Bob 的公钥和一些相关信息一起加密,生成 "数字证书"(Digital Certificate)

  1. Bob 拿到数字证书以后,就可以放心了。以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。而 Susan 收到信件后,也先用 CA 的公钥解开数字证书,拿到经过认证的公钥,再用这个公钥去验证数字签名,以此来确认是否真的来自 Bob。

这就是数字证书作用。数字证书好比驾照,驾照上记录了驾驶员的姓名、年龄、出生日期等信息,并由交管部门在上面盖章,以示经过权威部门鉴定,可以信任。同理,数字证书也同样记录了姓名、组织、电子邮箱、以及属于此人的 公钥 ,并由权威的 认证机构(Certification Authority,CA) 施加数字签名,也就是说,权威认证机构认定该公钥的确属于证书上记录的人或组织。

实际情况中,往往对数字证书申请者身份的认证,会由一个专门的 注册机构(Registration Authority,RA) 进行处理,以便让 CA 能专注于数字证书的制发和维护。RA 通过与金融机构,如信用报告机构进行合作,对申请人提供的业务和身份信息进行核实,核实通过后通知 CA 颁发相应的证书。

CA机构

基本概念六:伪随机数生成器

伪随机数生成器(Pseudo Random Number Generator,PRNG)是一种能够模拟产生随机数序列的算法。随机数是密码算法的重要技术基础,承担着 生成密钥 的重要指责。如果伪随机数生成算法不好,就容易被窃听者推测出来,对通信的机密性产生威胁。

基本概念七:密码学工具箱

“密码学家的工具箱” 这个比喻出自布鲁斯.施奈尔写作的《网络信息安全的真相》一书。如下图所示,密码学的几项技术在信息安全中发挥着至关重要的作用,解决了不同维度的威胁问题,让我们再罗列一下这些技术:

  • 对称密码
  • 非对称密码
  • 单项散列函数
  • 消息认证码
  • 数字签名
密码学家的工具箱

基本概念八:隐写术

为了安全的进行通信,人们进行了很多的发明,而密码学的本质是一种让信息变得无法解读的技术。还有一种叫做隐写术的技术,则走的是另外一个路径,它不是让消息内容变得无法解读,而是将真正的消息巧妙的进行隐藏,是信息技术的“障眼法”。

举一个小例子(抄自《图解密码技术》,结城浩):

-- 我们先准备一段话
-- 很容易看懂的就可以
-- 喜闻乐见的当然更好
-- 欢迎你尝试将另一句话嵌在这段话中
-- 你会发现这其实就是一段隐写术

隐写术是一门古老的艺术,远不是上面写的这么简单,是一个非常有意思的领域。将隐写术与密码技术相结合,扬长避短,能够为带来更强大的信息安全保障,后面有机会我再更深入的学习下。

基本概念九:正确认知信息安全

这里写的一些内容可能会有悖于常识,但细细品味后,更会觉得密码学是一个有趣的领域。

第一、不要使用保密的密码算法
关于秘密,历史和生活告诉我们,越少的人知道,就越安全。然而,这个经验用在密码学中却不适用,主要有两个原因:

  1. 密码的算法早晚会公诸于世,一旦到了那一天,依靠对密码算法本身保密而建立的安全体系将土崩瓦解,而那些公开密码算法从一开始就没想着要保密,因此算法的暴露根本不影响其安全强度。这其实是一种思想,现代密码体系正是基于这个思想构建的。
  2. 依靠个人或某个组织开发高强度的密码算法是非常困难的。世界上公认的高强度密码算法,几乎都是经过密码破译者长期尝试破解未果而生存带来的。因此,如果自认为偷偷搞出来的一套“不为人知”的密码算法具有更高的安全性,其实是有点自不量力了。

第二,使用低强度的密码比不进行任何加密更危险
这观点更让人懵逼了。其实这还是在讲述一个思想,那就是人们容易通过“密码”这个词获得一种”错误的安全感”,我们必须清醒的认识到 信息被加密 != 安全强度高 这个道理。使用低强度的密码,自以为获得了安全级别,在处理机密信息时,意识深处会放弃警惕性,这是最危险的。

第三,任何密码总有一天会被破解
如果有人向你推销一种不可能被破解的密码体系时,你一定要打起精神,不要被其欺骗。当然,严格来说,一次性密码本 是绝对不会被破解的(原因在后面的文章中讲述),然而这种密码技术是不具备实际用途的;还有一种可能会实现理想的途径 -- 量子密码,只是现在还为时过早。不要忘记,拥有了量子武器的盾牌,面临的也将是被量子武装的长矛,输赢还是未知。

第四,密码只是信息安全的一部分
水流的聪明之处在于,它会巧妙的绕开石头。攻击者面对密码技术时,也未必就会选择正面强攻。也许绕道攻击信息持有者的电脑,直接获取加密前或解密后的文件更简单。比起“骗子”,再强大的CPU也会显得很傻。结城浩在《图解密码技术中》说的很棒:

要保证良好的安全性,就需要理解“系统”这一概念本身的性质。复杂的系统就像一根由无数环节相连组成的链条,如果用力拉,链条就会从其中最脆弱的环节断开。因此,系统的强度取决于其中最脆弱的环节的强度

最错弱的环节并不是密码,而是人

以上,就是密码学的基本概念。


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

推荐阅读更多精彩内容

  • 前言 最近在面试中被问到了HTTPS的相关问题,加上密码学也刚好学到公钥密码学,我就趁热打铁,整理一下HTTPS相...
    卓三阳阅读 2,936评论 0 5
  • 一、准备知识 在开始介绍前,需要首先了解一下消息摘要、数字签名、数字证书的知识 1、消息摘要 - Message ...
    浪够_阅读 2,709评论 1 2
  • 在深入学习区块链时,不可避免的需要了解密码学。区块链算是对密码学的一次整合运用,虽然并无太多创新的密码算法,但也值...
    Kerwong阅读 44,280评论 4 25
  • 本文转载,出处如下:数字证书原理 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了...
    随安居士阅读 1,674评论 1 8
  • 林冲命真好 文/茹 林冲,江湖人称“豹...
    姣侠阅读 3,844评论 2 6