区块链兄弟社区,区块链技术专业问答先行者,中国区块链技术爱好者聚集地

作者:于中阳

来源:区块链兄弟

原文链接:www.blockchainbrother.com/article/81

著权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

密码分析

密码编码学的主要目的是保持明文(或者是密钥)的秘密并防止窃听者(也可以叫对手、攻击者、截取者、入侵者、敌人等)知晓。这里假设窃听者完全能够截获发送者和接收者之间的通信。

密码分析学是在不知道密钥的情况下,恢复明文的科学。成功的密码分析可以恢复消息的明文或者密钥。与此同时,密码分析也可以验证出密码体制的弱点,并最终恢复明文或者密钥。

注:密钥通过非密码分析方式的丢失叫做泄露(compromise)。

对密码进行分析的尝试称为攻击(attack)。A.Kerckhoffs 早在19世纪就阐明了密码分析的一个基本假设,此假设就是秘密必须全寓于密钥中。Kerckhoffs假设密码分析者已知密码算法以及其实现的全部资料。虽然在实际的密码分析中并不总是拥有如此详细的信息,但理应如此假设。这样如果不能破译算法,那么即便了解算法是如何工作的也是徒然。当然,如果连算法的知识和相关资料都没有,那就肯定无法破译。

现我列出常用的四类密码分析攻击,在此假设每一类密码分析者都知道所用的加密算法的全部知识。

1)唯密文攻击(ciphertext-only attack)。密码分析者有一些消息的密文,这些消息都用相同的加密算法进行加密。密码分析者的任务就是恢复尽可能多的明文,或者最好能推算出加密消息的密钥,以便可采用相同的密钥破解其他被加密的消息。

已知:

...

推导出:或者找出一个算法从

推导出

2)已知明文攻击(known-plaintext attack)。密码分析者不仅可得到一些消息的密文,而且也知道这些消息的明文。分析者的任务就是用加密信息推出用来加密的密钥或导出一个算法,此算法可以对用相同密钥加密的任何新消息进行解密。

已知:推导出,密钥K,或者从推导出的算法。

3)选择明文攻击(chosen-plaintext attack)。分析者不仅可以得到一些消息的密文和相同的明文,而且还可以选择被加密的明文。这比已知明文攻击更加有效,因为密码分析者能选择特定的明文块进行加密,那些块可能产生更多关于密钥的信息。分析者的任务就是推导出用来加密消息的密钥或导出一个算法,此算法可以对用相同密钥加密的任何新消息进行解密。

已知:其中可以由密码分析者选择。

推导出:密钥K,或者从推导出的算法。

4)自适应选择明文攻击(adaptive-chosen-plaintext attack)。这是选择明文攻击的特殊情况。密码分析者不仅能够选择被加密的明文,还可以基于以前加密的结果修正这个选择。在选择明文攻击中,密码分析者还可以选择一大块被加密的明文。而在自适应选择明文攻击中,可以选择较小的明文块,然后再基于第一块的结果选择另一个明文块,以此类推。

除了以上介绍的4类密码分析攻击,还有至少三类其它的密码分析攻击。接上文排序如下:

5)选择密文攻击(chosen-ciphertext attack)。密码分析者能选择不同的被加密的密文,并可得到对应的解密的明文。例如,密码分析者访问一个防篡改的自动解密盒,密码分析者的任务就是推导出密钥。

已知:推导出:K。

这种攻击主要用于公开密钥算法。选择密文攻击有时也可以有效的用于对称算法。

注:有时选择明文攻击和选择密文攻击一起称为选择文本攻击(chosen-text attack)。

6)选择密钥攻击(chosen-key attack)。这种攻击并不表示密码分析者能够选择密钥,其只是表示密码分析者具有不同密钥之间关系的有关知识。

此种方法比较晦涩和奇特,并不是很实际。

7)软磨硬泡攻击(rubber-hose cryptanalysis)。密码分析者威胁、勒索,或者通过折磨某人,直到其给出密钥为止。

通过行贿获取密钥的方法,有时称为购买密钥攻击(purchase-key attack)。这些是非常有效的攻击,并经常是破译算法的最便捷途径。

文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述

密码学基础(三)密码分析相关推荐

  1. 密码学系列(三):区块链+密码学基础知识

    密码学系列(三):区块链+密码学基础知识 一.区块链的概念 区块链概述 区块链的特点 区块链变化 市场现状 二.区块链政策与标准 区块链的特点与发展 三.区块链的定义 区块链的价值 四.区块链开发语言 ...

  2. 重力传感器 测重力代码_“重力瀑布”如何帮助您教授孩子的密码学基础知识...

    重力传感器 测重力代码 by Kamil Tustanowski 通过卡米尔·图斯坦诺夫斯基 "重力瀑布"如何帮助您教授孩子的密码学基础知识 (How "Gravity ...

  3. 《信息安全工程师教程》学习笔记02(第二章 密码学基础与应用—DES算法)

    第二章 密码学基础与应用 2.1 密码学的基本概念 1949年香农发表了<保密系统的通信理论> 1976年W.Diffie和M.Hellman提出公开密钥密码 1977年美国联邦政府颁布数 ...

  4. 密码学基础--仿射密码

     在仿射密码中,加密函数定义为: e(x)=(ax+b)mod26 a,bZ.因为这样的函数被称为仿射函数,所以这样的密码体制也称为仿射密码(可以看出,当a=1时,其对应的正是移位密码). 为了能对密 ...

  5. 计算机 密码学 实验一,计算机网络安全技术-实验一-密码学基础

    计算机网络安全技术-实验一-密码学基础 计算机科学与技术系实 验 报 告专业名称 网络工程 课程名称 计算机网络安全技术 项目名称 密码学 班 级 13 网工(1)班 学 号 1304031030 姓 ...

  6. http、https、密码学基础、GET和POST区别

    http协议相关: http协议的特性: http协议是建立在TCP/IP协议之上应用层协议,默认端口为80或者8080.http协议的的特点是无状态,无连接(并不是真的没有连接,而是在请求数据的时候 ...

  7. 密码学基础算法(二)中国剩余定理

    随便谷歌了一个图片做首图 原图地址: http://www.siwapu.com/etagid41968b0/ 密码学基础系列: (一) 基于整数的欧几里得算法和扩展欧几里得算法 (二) 中国剩余定理 ...

  8. 密码学基础:Base64编码

    文章概述: 本文目的:写这篇文章的目的主要是整理下密码学中Base64的知识点,并把它们分享出来.并且帮助初探密码学的坛友们一步一步的用C语言将Base64的编码实现出来. 阅读方法:希望大家在浏览完 ...

  9. 开发过程中那些不得不知道的密码学基础

    Java密码学基础 发展历史 古典密码学 如凯撒密码.滚筒密码 近代密码学 如德国Enigma机,被图灵破解 现代密码学 编码算法 不是加密和解密,为了在网络间更方便的传输数据/本地存储字节数组而产生 ...

  10. 凯撒密码加密算法python_CTF中会用到的密码学基础(节选)

    Hello,大家好,好耐冇见,我系初音 今天我们来学习一下关于CTF中会用到的部分密码学基础(很简单的那部分) 01第一节.凯撒密码 在密码学中,凯撒密码(Caesar cipher),或称凯撒加密. ...

最新文章

  1. AI“双子星”同日联动:DeepMind加速编程自动化,OpenAI新方法解开2道国际奥数题...
  2. TTIC Postdoc Position
  3. 后缀的形容词_高三语法总复习:名词形容词变名词的后缀
  4. java 超时集合_确定性监视器脉冲/等待并在 生产环境 者 - 消费者集合中实现超时...
  5. php榛子云短信验证,java + maven +榛子云短信 实现发送短信验证码功能
  6. Linux创始人Linus Torvalds怒怼Intel:正视问题而不是搞公关才是正事
  7. C语言 · 十六进制转十进制
  8. 支付宝上线长辈模式: 字体图标加大 去除了营销推送
  9. vc 可用的正则表达式库
  10. 局域网访问虚拟机服务器桥接,虚拟机让局域网访问的方法---桥接模式
  11. mysql 通达信公式_通达信的几个好用指标
  12. iOS 视频播放器 VLC的集成和基本使用
  13. 百度地图-根据起终点经纬度驾车导航
  14. Nofollow标签的写法以及nofollow使用介绍
  15. QT qss选择器------后代选择器
  16. eclipse没有Java EE透视图!
  17. 踩坑之ios手机new Date(yyyy-MM-dd hh:mm:ss).getTime()返回NaN
  18. C++中四种类型转换运算符的使用方法
  19. 阿里云k8s一键部署有状态StatefulSet nacos2.0.3
  20. sql里left join的效率问题

热门文章

  1. 博客平台遭虚假勒索攻击、新黑客组织称对以色列的攻击负责|11月16日全球网络安全热点
  2. 2018-12支付宝红包赚钱薅羊毛全攻略
  3. 拥抱趋势,蓄能跃迁——2018慧点科技企业协同及治理创新论坛圆满举行
  4. 追光的人beta冲刺总结
  5. SNF快速开发平台2020版
  6. mysql explain结果信息_MySQL EXPLAIN 输出信息解读
  7. 鸿蒙系统是怎样一种系统,鸿蒙系统pc版怎么安装 鸿蒙系统pc版安装教程
  8. 游戏设计自学记录(入门完结)
  9. JDK Required: 'tools.jar' seems to be not in IDEA classpath解决办法
  10. 如果“永远”只是一瞬间