• 密码学历史中出现过的密码技术
    • Caesar cipher
    • 暴力破解(brute-force attack)
    • Simple Substitution Cipher
    • 密钥空间(key space)
    • 多重置换密码
      • Hill Cipher
      • Vigenere Cipher

前言:因为手边有一本很不错的书,是韩文版的,所以本博文中很多图片可能是韩文版,我都会标注上中文,多有不便请各位海涵。

加密与解密这一过程,我简单总结为5个英文字母。加密和解密过程中,秘钥最为重要,秘钥的生成依赖于加密和解密算法,如果算法被破解,则秘钥本身也变得没有意义。

P E C D K
plaintext encipher ciphertext decrypt key
明文 加密 密文 解密 秘钥

加密&解密的对应公式:C=Ek(P),P=Dk(C)C=E_k(P),P=D_k(C)C=Ek​(P),P=Dk​(C)

加密与解密两者结合统称为密码。

上图涵盖了本文的核心对应关系。左边第一栏代表遇到的问题,第二栏代表解决该问题的理论,第三栏为代表举措。

密码学历史中出现过的密码技术

Caesar cipher


凯撒码将对应字符表后移x位,x为加密者任取值。图中是3,当计算机编码时,会映射到ASCII表,原本65对应A,现在68才是对应A。
下接一例:

用对应的映射关系,将明文变更到密文。解密时只需要通过映射表反向映射即可。

问题点:由于秘钥空间有限,且对应关系字符串有限,时间允许的情况下即便是人类也能够一对一不断去尝试,直到试出对应秘钥。

暴力破解(brute-force attack)

尝试所有密码空间内可行的秘钥,使用计算机的超过运算速度进行尝试,直到试出真正的秘钥。再复杂的加密法,都会有被破解的一天,因为只要电脑运算的时间够快,透过反复的try-error,总是有机会try出正确的解密秘钥,而密码也是一样,只要有足够多的尝试机会,再复杂的密码都有可能被破解。
暴力解码如果能给予无限的时间和无限的开支报销(无限计算机power的计算机得多贵啊),则理论上可以破解所有密码。只不过现实角度而言,我们要破解一个密码,破解一个密码用几百年是不现实的事情,有这个想法不如精心策划一场武装袭击来的现实。

Simple Substitution Cipher

单一置换加密,对Caesar cipher进行了改进,不再将全字符包按照固定规律偏移映射,而是将全字符按照乱序全映射。比起Caesar cipher复杂度显著提高。

加密与解密过程同Caesar cipher,掌握对应映射关系即可,不再演示。

问题点:明文中高频单词对应的也会出现在密文中,对攻击者而言,更容易从人的立场上思考和破解。如对于英文中,高频单词the,使用该加密法,不论如何the这个连续的三个字符都会对应到高频词表上,只要做一下统计就能找出t/h/e的映射表,然后再找单词中内含有the的单词,进行逐步推理,即可破解。

大家可以尝试一下这个有趣的思考题,每个小人的动作对应一个字母,根据已有的提示写出空缺部分。说到底这种破解方法很类似解数独。

密钥空间(key space)

对应加密算法可以使用的所有秘钥的集合,密钥空间的大小就是这个集合所有的元素总数,密钥空间越大,则暴力解码越困难。

对于单一置换加密算法,密钥空间是26!= 403291461126605635584000000

暴力解码攻击需要的时间:如果一秒解码10亿个,解码上述空间的秘钥也需要120亿年。

但是配合上频率分析,则简单的多了。我们已经分析过了,下面上一个例子。

上述密文,我们使用频度分析法来尝试破解。

上图为密文中字母出现的频率。

上图为所有英文词库中,所有字母的占比率。

把整体出现频率最高的用e来代替,由于Y和I都是最高频率,这里随机选一个Y。则密文变成上图所示。

然后考虑到英语中高频单词the。进行字母映射。

然后在考虑一些经常出现的单词。
半破解的密文,再来猜想和尝试:
thethDWg−−>thethingthethDWg-->the thingthethDWg−−>thething
grINe−−>grace,grade,grape,grate,grave,gripe,grofe..grINe-->grace, grade, grape, grate, grave, gripe, grofe..grINe−−>grace,grade,grape,grate,grave,gripe,grofe..

解密这一个过程本身就是不断的try-error中得到正解。

Shich看到后我们可以联想到which,则S对应w。
thethingtoQRench,可以明确划分出the thing to QEench。QE可以猜测对应的单词quench,而hot ZuUUer也可以猜hot summer等……然后在联系上文是否有猜错的地方

可以得到一个半加密的密文,在这种情况下继续推测或者暴力解法都是可行的。

不断整理
猜猜猜

最终能得到置换表,也就是秘钥。

将对应的秘钥应用的密文中解码,即可得到明文。


总结:单一置换算法中,不仅高频字符是弱点,低频字符也是弱点。解码速度会随着只言片语的破解而越来越快。

多重置换密码

克服单一置换算法的弊端,让字符对应表尽可能均匀分布。

Hill Cipher


则有密文对应字母满足下矩阵表达式。C代表密文,P代表明文,K代表秘钥。
下图中明文是PAYMOREMONEY(Pay more money)

加密过程:
字母表共26字母,A是第一个,计算机中用0表示序号1。则对应的PAY分别是15.0.24。用该数值进行与key的行列运算。可以得到11 13 18,他们对应到字母表的顺序就是L N S。通过这种方法,不同字母可能运算出同一字母的密文,同一字母的密文也可能运算出不同字母的密文。也就说,置换的频率分布不再直接反映到明文中。

解密过程:
求秘钥K的逆矩阵,然后用该逆矩阵矩阵乘密文,就可以获得明文。

Vigenere Cipher

该密码技术有多个映射表,根据不同的情况选择不同的映射表,从而达到非单一映射的目的,也能解决单一置换密码的问题。
如,Key是 deceptive ,明文是 we are discovered save yourself

Key读取x坐标,明文读取y坐标。也就说key值为d时,映射表选取第四列,明文w对应的密文是Z。

【信息保护论】Ch2. 加密与解密: 密码学历史中出现过的密码学技术相关推荐

  1. 【信息保护论】信息保护与密码学

    信息保护概念 什么是信息保护? 安全的分类 CIA系统 网络安全的威胁 计算机面临的威胁--恶意程序 加密与解密技术 密码学历史中出现过的密码技术 Caesar cipher 暴力破解(brute-f ...

  2. Java加密与解密笔记(四) 高级应用

    术语列表: CA:证书颁发认证机构(Certificate Authority) PEM:隐私增强邮件(Privacy Enhanced Mail),是OpenSSL使用的一种密钥文件. PKI:公钥 ...

  3. “个人信息保护:加强隐私教育与互联网公司的数据处理“

    一.互联网生存指南:通过哪些方法来加强个人信息保护? 1.使用强密码:选择独特.复杂的密码,并定期更改密码,避免使用相同的密码在多个账户上. 2.采用多因素身份验证:启用多因素身份验证,例如短信验证码 ...

  4. Excel2003工作簿密码和工作表保护的加密和解密

    前段时间,一个朋友从政府部门相关网站下载一个申请的表格,想贴照片时却一直无法粘贴,后来才发现原来是在工作表保护,避免大家都随便改,把格式搞乱了.如果没有密码,直接工具-保护-撤消工作表保护就可以了.如 ...

  5. Excel保护加密、解密、忘记密码该怎么办?

    Excel文件,大家应该都很熟悉,经常用于处理数据.记录数据等情况,还有一些比较重要的数据,大家也都会选择使用excel来编辑,更重要的是excel文件带有好用的函数功能,方便大家进行一些筛选.计算等 ...

  6. 如何在 Linux 上用密码加密和解密文件

    age 是一个简单的.易于使用的工具,允许你用一个密码来加密和解密文件.age 能帮你这样做.它是一个小型且易于使用的工具,允许你用一个密码加密一个文件,并根据需要解密. age 是一个简单的.易于使 ...

  7. C# 设置Word文档保护(加密、解密、权限设置)

    C# 设置Word文档保护(加密.解密.权限设置) 对于一些重要的word文档,出于防止资料被他人查看,或者防止文档被修改的目的,我们在选择文档保护时可以选择文档打开添加密码或者设置文档操作权限等,在 ...

  8. 加密文件忘记密码怎么解密_MyBatis 配置文件 用户密码加密存储

    properties配置文件 一般是使用properties保存配置文件内容,然后在mybatis配置文件中进行读取 在resource文件下新建db.properties文件 内容如下 # 数据库配 ...

  9. 自动加密企业关键业务数据 赛门铁克推出全新信息保护解决方案

    最新推出的Symantec Information Centric Security解决方案,能够帮助企业随时随地对数据进行自动加密.跟踪和撤销,提供卓越的可见性和管控力 近日,全球网络安全领域的领导 ...

最新文章

  1. 防止程序重复执行的单元
  2. 遇到 400、500 错误千万不要慌!
  3. python3.5怎么安装pip-python3.5.2安装pip管理工具
  4. 虚拟化:企业信息化建设中坚力量
  5. 【SAP】相关性类型简介
  6. OA服务器重装操作系统恢复配置
  7. html2canvas 截图div_H5快照截图[html2canvas]+图片下载
  8. WCF技术剖析之十七:消息(Message)详解(上篇)
  9. kohana::模板全攻略
  10. 用Jenkins自动化搭建测试环境-前奏
  11. Linux下编写简单的程序
  12. 有些人,理他就输了!
  13. 反射生成SQL语句入门
  14. x96max+ 电视盒子如何刷入EmuELEC游戏系统
  15. windows上使用wordpress搭建博客
  16. python父亲节祝福_2020年精选优美的父亲节祝福语28条
  17. Ae 入门系列之十:效果和动画预设
  18. 小程序模板消息推送报错 “errcode“:40165,“errmsg“:“invalid weapp
  19. 计算机导论期末自测题,计算机导论期末习题da
  20. WPF DataGrid 获取选中 一行 或者 多行

热门文章

  1. bff Backends For Frontends 聚合层
  2. DIY基于RTD2662的LVDS屏幕驱动
  3. 超导磁通量子计算机,超导磁通量子比特低频磁通噪声的测量
  4. webpack版本升级的差异大版本更迭
  5. 2021年全球与中国飞机螺旋桨系统行业市场规模现状及企业市场份额分析
  6. 大公司和创业公司怎么选?
  7. 使用java编写周易卦象生成器
  8. HDOJ I NEED A OFFER! 1203
  9. 剑指offer 31. 栈的压入、弹出序列
  10. 关联规则(一)Apriori算法