文章目录

  • 前言
  • 1.1 密码学以及现代密码学
  • 1.2 私钥密码的设定
    • (1) 一些定义
    • (2) 密码方案的语法
    • (3) Kerckhoffs原理
  • 1.3 一些密码方案
    • (1) Caesar's cipher
    • (2) shift cipher
    • (3) 充足密钥空间原则
    • (4) mono-alphabetic substitution cipher
    • (5) 移位密码的改良攻击
    • (6) Vigenere cipher
    • (7) 维吉尼亚密码的攻击
  • 1.4 现代密码学的原则
    • 1.4.1 形式化定义
      • 安全加密定义
        • 安全保证
        • 威胁模型
    • 1.4.2 精确假设
    • 1.4.3 安全性证明

前言

本系列读书笔记是基于个人对于《Introduction to modern cryptography》的阅读写下的,将会不定期更新其他章节的阅读笔记,本章为开篇第一章。文章中图片均来源于《Introduction to modern cryptography》一书。


1.1 密码学以及现代密码学

  密码学,在字典中的含义是“编码或解码的艺术”,主要针对的是编码。时至今日,其内涵已经扩展到包括完整性保障、密钥交换、验证协议、电子投票以及加密货币等各个方面。而对应的,现代密码学涵盖保护数字信息、数字系统和分布式计算免遭攻击的数学技术研究。
  从时间上看,二者大致上以1980s为分界线,在此之前的称为古典密码,之后的成为现代密码。
  总的来说,密码学已经从之前的一种用以保护少数特定应用场景的信息机密性的启发式的技巧发展成为一门帮助全世界普通人保障系统广泛化的科学。

1.2 私钥密码的设定

(1) 一些定义


  对称加密:在对称加密的场景下,通信双方共享密钥,发送方可使用之加密明文并将其以密文形式发送至接收方,接收方使用相同的密钥解密密文并恢复明文。
  对称密码有两个典型的应用方向空间上,同一时间内两不同地点的通信双方可使用对称密码满足保密通信的要求;时间上,同一地点的不同时间维度的双方亦可使用对称密码满足保密通信的要求。

(2) 密码方案的语法

  • Gen: 密钥生成算法(概率算法),可从特定分布中输出密钥。
  • Enc: 加密算法,输入密钥 k 和明文 m,输出密文 c,可记作 Enck(m)Enc_k(m)Enck​(m).
  • Dec: 解密算法,输入密钥 k 和密文 c,输出明文 m,可记作 Deck(c)Dec_k(c)Deck​(c).

  以上算法需满足以下公式:
Deck(Enck(m))=mDec_k(Enc_k(m)) = m Deck​(Enck​(m))=m

(3) Kerckhoffs原理

  密码方案并不需要保密,而且它必须很容易被敌方获取。换一种说法,密码方案的安全性不依赖于密码方案的保密,而是只依赖于密钥的隐秘性
  该原理有三种主要依据:

  • 保证密钥的隐秘性比保证整个密码方案的安全性容易很多。
  • 再次通信时,更换密钥比更换整个密码方案更容易。
  • 在广泛使用前,向公众公布密码方案可检查出可能存在的弱点,使 1) 不同用户兼容, 2)公众可使用经过大量审查后的强方案。

1.3 一些密码方案

(1) Caesar’s cipher

  凯撒密码是目前最古老的密码之一,其核心点在于明文通过右移三位进行加密。

(2) shift cipher

Gen()→kEnck(m1⋅⋅⋅ml)=c1⋅⋅⋅cl,ci=[(mi+k)mod26]Deck(c1⋅⋅⋅cl)=m1⋅⋅⋅ml,mi=[(ci−k)mod26]Gen() \rightarrow k \\ Enc_k(m_1 ··· m_l) = c_1 ··· c_l,\ c_i = [(m_i + k) \ mod \ 26] \\ Dec_k(c_1 ··· c_l) = m_1 ··· m_l,\ m_i = [(c_i - k)\ mod \ 26] Gen()→kEnck​(m1​⋅⋅⋅ml​)=c1​⋅⋅⋅cl​, ci​=[(mi​+k) mod 26]Deck​(c1​⋅⋅⋅cl​)=m1​⋅⋅⋅ml​, mi​=[(ci​−k) mod 26]

(3) 充足密钥空间原则

  移位密码可以被穷举破解,原因在于移位密码的密钥只存在26种可能,只需尝试每种可能再取其中最合理的结果便可完成破解,故可引出以下原则:
任何安全加密方案都需要一个足够大的密钥空间以保证穷举攻击是难以做到的\small 任何安全加密方案都需要一个足够大的密钥空间 \\ 以保证穷举攻击是难以做到的 任何安全加密方案都需要一个足够大的密钥空间以保证穷举攻击是难以做到的

(4) mono-alphabetic substitution cipher

  在该密码方案中,密文和明文的映射关系是随机的,但是需要保证此映射关系是一对一的,并由此使得密钥空间包含字母表中所有的双射。
  该方案保证了密钥空间的规模足够大,但是仍然会被攻击者利用英语的统计特性加以攻击:

  • 对于任意密钥,字母间的映射关系是固定的
  • 英语中所有字母的概率分布是已知的,大体量文本中字母的频率可侧面印证

(5) 移位密码的改良攻击

  在之前的移位密码的攻击中,我们需要尝试每种密钥可能并选出结果最合理的解,该方法的缺点在于电脑很难选择出人类认知中的合理。更重要的是,当明文本身并不是语言意义上合理时,保证解密出来的明文合理已经毫无作用。而在下列方法中,明文只需要满足和英语具有相同分布即可:
  用 0-25 分别表示英文字母 a-z,pip_ipi​表示第 i 个字母出现的频率,则可得到以下结论:
∑i=025pi2≈0.065\sum_{i=0}^{25} p_i^2 \approx 0.065 i=0∑25​pi2​≈0.065
  在得到一些密文的情况下,令qiq_iqi​表示密文中第 i 个字母出现的频率,并假设密钥为 k,则可认为pip_ipi​和qi+kq_{i+k}qi+k​对应,于是我们计算每个可能的密钥取值j∈{0,...,25}j \in \{0,...,25 \}j∈{0,...,25},当得到的IjI_jIj​和Ik≈0.065I_k \approx0.065Ik​≈0.065最接近时便可认为j=kj = kj=k
Ij=def∑i=025pi⋅qi+jI_j \stackrel{def}{=} \sum_{i = 0}^{25}p_i·q_{i+j} Ij​=defi=0∑25​pi​⋅qi+j​

(6) Vigenere cipher

  维吉尼亚密码是多表移位密码的典型,可被认为是在不同明文区域中使用不同移位密码实例。密钥可被视为一串字母,加密是通过按密钥的扩展字符所表示的数量移动每个明文文本字符,当密钥长度为 1 时退化为移位密码。示例如下:

(7) 维吉尼亚密码的攻击

  当密钥长度(t)已知的情况下,攻击该密码方案是非常容易的:我们可以将密文分为 t 个部分(按以下方式进行组合),其中每个部分都可以使用移位密码的方式进行破解,可暴力破解亦可利用统计规律破解。
cj,cj+t,cj+2t,j∈{1,...,t}c_j, c_{j+t},c_{j+2t}, \quad j \in \{ 1,...,t \} cj​,cj+t​,cj+2t​,j∈{1,...,t}
  当 t 未知时,破解该密码方案的难度并未过度提升,原因如下:

  • 只要密钥的最大长度 T 不是非常大,我们便可以重复上述攻击 T 次,而且其中正确结果将会更加好辨认
  • Kasiski’s method:由于英语固有的语法结构,导致一些特定的双字母组和三字母组经常出现,于是我们便可以找密文中重复出现的三字母组,其间距极有可能是密钥长度 t 的倍数

  以上对维吉尼亚密码的攻击需要攻击者能够得到远大于密钥长度的密文,以确保计算得到的频率接近英语中字母的频率分布。

1.4 现代密码学的原则

1.4.1 形式化定义

  • 形式上的定义通过给出清晰的描述让人们理解包括哪些威胁以及需要哪些安全保证
  • 定义提供了评估和分析结构的方式
  • 定义能够实现不同方案间的对比,对密码方案可模块化转移

安全加密定义

  总的来说,安全性定义由两部分组成:安全保证威胁模型,安全保证定义方案要阻止攻击者的行为,威胁模型阐述攻击者的能力、攻击者能够执行的行为。

安全保证

  • 攻击者不能恢复密钥
  • 攻击者不能从密文中恢复明文
  • 攻击者不能从密文中恢复明文的任意字母
  • 无论攻击者有任何信息,密文都不能泄露任何有关明文的额外信息

威胁模型

  • 仅密文攻击:攻击者只能获取密文
  • 已知明文攻击:攻击者获得部分明文/密文对
  • 选择明文攻击:攻击者可以选择明文进行加密得到密文
  • 选择密文攻击:攻击者可以选择密文进行解密得到明文

1.4.2 精确假设

  • 假设的有效性:假设被检查和测试的次数越多,越能说明假设为真。
  • 假设间的比较:人们偏向于选择更和研究次数更的假设
  • 理解必要假设:加密方案经常基于潜在的逻辑块,若在后续发现了该逻辑块的弱点,只需检查所需假设是否被新弱点影响来确保密码方案的安全性

  证明密码方案的安全性基于某些其他假设而不直接假设密码方案是安全的原因如下:

  • 一个被研究多年的假设优先于一个伴随新结构提出的假设
  • 密码设计时偏好更简单的假设
  • 低层次的假设可被移植于其他结构
  • 低层次假设满足模块化

1.4.3 安全性证明

  在密码学中,严格证明一个结构满足特定假设下的给定定义是十分重要的。相对于定义和假设,安全性证明提供了一个更加坚实的保证:没有攻击者能攻击成功;这比用无原则的或启发式的方法来解决问题要好得多。
  如果不能证明任何拥有特定资源的对手都不能破坏某个方案,我们只能凭直觉认为情况就是如此。经验表明,在密码学和计算机安全方面的直觉是灾难性的。

Introduction to modern cryptography 第一章阅读笔记相关推荐

  1. 西瓜书第一章阅读笔记

    西瓜书第一章阅读笔记 第一章 绪论 1.机器学习基本术语 2.归纳偏好 3.所有学习算法一样优秀? 4.补充资料 第一章 绪论 1.机器学习基本术语 记录:对一个事件或对象的描述,也称为"示 ...

  2. PCGBooK第一章 阅读笔记

    本文是对pcgbook(http://pcgbook.com/)的阅读笔记,笔者如果出现错误,欢迎指正 1.1 PCG的定义 PCG,基于过程式内容生成(procedural content gene ...

  3. 大道至简第一章阅读笔记

    大道至简的第一章中开头就举出了一个家喻户晓的故事-愚公移山,这个故事可以很容易的看出原始需求,即:"惩山北之塞,出入之迂",项目目标:"毕力平险,指通豫南,达于汉阴&qu ...

  4. animal farm 第一章阅读笔记

    chapter 1 Old Major's dream. paragraph 1  //Mr Jones is the mastor of the Manor Farm.That night  he ...

  5. 《Introduction To Modern Cryptography》读书笔记二

    <Introduction To Modern Cryptography>读书笔记二 本笔记纯粹个人读书习惯与相应见解,内容归纳完全出于个人需要与个人局限,如有修改意见(比如哪儿应该是值得 ...

  6. 前言 - 现代密码学导论 Introduction to Modern Cryptography

    Introduction to Modern Cryptography - Jonathan Katz and Yehuda Lindell 前言 ​    这本书介绍了密码学的基本原理和原则.旨在作 ...

  7. 计算机网络第七版第一章阅读

    计算机网络第七版第一章阅读 第1章 概述 1.1 计算机网络在信息时代的作用 1.2 互联网概述 1.2.1 网络的网络 1.2.2 互联网基础结构发展的三个阶段 1.2.3 互联网的标准化工作 1. ...

  8. 西瓜书第三章阅读笔记

    西瓜书第三章阅读笔记 第三章 线性模型 1.机器学习三要素 2.基本形式 3.线性回归 3.1 模型 3.2 策略 3.3 求解算法 4.对数几率回归 4.1 模型 4.2 策略 4.3 求解算法 5 ...

  9. 【食品化学与营养】第一章 绪论 笔记

    [食品化学与营养]第一章 绪论 笔记 1.1 食品化学的定义 食品化学的定义 什么是食品 什么是化学 什么是食品化学 食品化学的发展历史 食品化学的研究方法 1.2 食品化学的研究 食品化学 食品化学 ...

最新文章

  1. Server 2008 R2多用户远程桌面连接授权,解决120天过期问题
  2. in最多可以放多少?_车子不开,最多可以停放多少天?维修工:别超过这个时间...
  3. git clone错误 fatal: early EOF fatal: index-pack failed
  4. .net 读word中文字方法
  5. 2.3 快速搭建你的第一个系统,并进行迭代-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  6. 【JAVA基础篇】对象初始化过程
  7. 增值电信服务费是什么意思_增值电信业务IDC许可证要年检吗,流程是什么
  8. C#LeetCode刷题之#704-二分查找(Binary Search)
  9. Amazon SQS 消息队列服务
  10. 不得不说的wepapi 优化
  11. 杂记 - 进化成更好的人
  12. 学计算机是为了什么演讲稿,求大学计算机协会职位申请书和演讲稿
  13. Struts 2.0 入门
  14. eclipse下载及安装教程
  15. Mybatis 拦截器 说明和使用 (一)
  16. 8月份全国省会城市快递上门签收分析-谁是剁手王城?
  17. DOSbox汇编集成环境下的详细设置
  18. PLC有几种编程语言以及它们的特点是什么
  19. 敏捷模式下携程的接口自动化平台演变
  20. 数据结构笔记整理(严蔚敏版) 更新中...

热门文章

  1. python的self.boardx -= 5 什么意思_python小白求帮助
  2. Flutter 加载WebView(加载网页)
  3. 据国外媒体Theverge称微软目前正计划整合Windows Phone应用商店
  4. html 样式重叠问题,css怎么解决网页重叠问题
  5. FTP的主动模式和被动模式
  6. Confluence 实现公司wiki
  7. MS切面时surface mesh设置小数提示错误解决方案
  8. MIMIC IV数据库安装(二)
  9. PTA 7-139 手机话费
  10. 聊聊心理学专业去用户体验研究方向的求职