chapter 2 古典密码技术

2.1替代密码

  • 替代是古典密码中用到的最基本的处理技巧之一 ;
  • 替代密码是指先建立一个替换表,加密时将需要加密的明文依次通过查表,替换为相应的字符,明文字符被逐个替换后,生成无任何意义的字符串,即密姐姐文,替代密码的密钥就是其替换表
  • 根据密码算法加解密时使用替换表多少的不同,替代密码又可分为单表替代密码多表替代密码

2.1.1单表替代密码

  • 一般单表替代密码:

    1. 原理:以26个英文字母集合上的一个置换π为密钥,对明文消息中的每个字母依次进行变换。
    2. 表示为:明文空间M和密文空间C都是26个英文字母的集合,密钥空间K={π:Z26→Z 26|π是置换},是所有可能置换的集合(26!)。
    3. - 1. 特点:①密钥空间大;②移位密码体制是替换密码体制的一个特例,仅含26个置换做为密钥空间;③密钥π不便记忆。
  • 移位密码(加法密码):

    1. 明文空间M、密文空间C都是和密钥空间K满足,即把26个英文字母与整数0,1,2,…,25一一对应。

    2. 加密变换,E={E:Z26→Z26, Ek (m) = m + k (mod26)| mM, kK }

      解密变换,D={D:Z26→Z26, D**k (c) = ck (mod26)| cC, kK }

      解密后再把Z26中的元素转换成英文字母。

    3. 移位密码是前面一般单表替代密码的一个特例。当移位密码的密钥k=3时,就是历史上著名的凯撒密码(Caesar)

  • 仿射密码:

    1. 仿射密码也是一般单表替代密码的一个特例,是一种线性变换。
    2. 明文空间和密文空间与移位密码相同,但密钥空间为 K={(k1,k2)| k1,k2∈Z26,gcd(k1,26)=1} ;
    3. 仿射密码要求(k1, 26)=1 ,否则就会有多个明文字母对应一个密文字母的情况。由于与26互素的整数有12个,故仿射密码密钥空间大小为|K|=12×26=312。
    4. 若将仿射密码的加密函数换为多项式函数时,即为多项式密码。
  • 密钥短语密码:

    1. 选用一个英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中的其它字母依次写于此字母串后,就可构造出一个字母替代表。
    2. 不同的密钥可以得到不同的替换表,对于明文为英文单词或短语的情况时,密钥短语密码最多可能有26!=4×10的26次方个不同的替换表。
  • 安全性分析:明文中单字母出现的频率分布与密文中相同,可利用自然语言的统计特性来破译这种密码

2.1.2多表替代密码

  • 维吉尼亚密码:

    1. 与位移密码体制相似,但维吉尼亚密码的密钥是动态周期变化的

    2. 原理:该密码体制有一个参数n。在加解密时,同样把英文字母映射为0-25的数字再进行运算,并按n个字母一组进行变换。明文空间、密文空间及密钥空间都是长度为n的英文字母串的集合。因此可表示为:

  • 希尔(Hill)密码:
    1. 基本思想:将n个明文字母通过线性变换,将它们转换为n个密文字母,解密只需做一次逆变换即可。

    2. 特点:①可以较好地抑制自然语言的统计特性,不再有单字母替换的一一对应关系,对抗“惟密文攻击”有较高安全强度;②密钥空间较大;③ 易受已知明文攻击及选择明文攻击。

  • 一次一密密码(又称为Vernam密码):
    1. 若替代密码的密钥是一个随机且不重复的字符序列,这种密码则称为一次一密密码,因为它的密钥只使用一次。

    2. 要求:密钥随机产生,只能用一次(由于每一密钥序列都是等概率随机产生的,敌手没有任何信息用来对密文进行密码分析);

    3. 香农(Claude Shannon)从信息论的角度证明了这种密码体制在理论上不可破译,具有无条件安全性(然而产生、存储和分发这样的随机密钥序列,并确保密钥的安全性都是很因难的)。

  • Playfair密码:
    1. 双字母单表替代密码,实际上属于一种多字母替代密码;它将明文中的双字母作为一个单元对待,并将这些单元转换为密文字母组合;替代时基于一个5×5的字母矩阵。字母矩阵构造方法同密钥短语密码类似。

    2. 特点:①虽然仅有26个字母,但有26×26=676种双字母组合;②各个字母组的相对频率要比双字母组合呈现出大得多的范围,使得频率分析困难得多;③仍然使许多明文语言的结构保存完好,能够被密码分析者所利用。几百字的密文通常就可以攻破该密码。

  • 其他替换密码算法:密本密码、连锁式密码(无密钥)等。

2.2 置换密码

  • 置换密码又称换位密码,通过改变明文消息各元素的相对位置,但明文消息元素本身的取值或内容形式不变;
  • 替代密码可以认为是保持明文的符号顺序,但是将它们用其它符号来替代。

2.2.1周期置换密码

  • 原理:将明文字符按一定长度n分组,把每组中的字符按1,2,…,n的一个置换π重排位置次序来得到密文的一种加密方法。
  • 密钥是置换π,在π的描述中包含了分组长度的信息。
  • 解密时,对密文字符按长度n分组,并按π的逆置换π-1把每组字符重排位置次序来得到明文。
  • 实质上是hill密码的特例,属于线性变换的密码

2.2.2 列置换密码

  • 原理:先按一定的方向把明文输入到某种预先规定的图形中,再按另一种方向输出密文字符。不足部分填入约定字符。
  • 其它置换密码:列变位密码、图形置换密码等等。

2.3 转轮机密码

  • 基本结构:一个键盘、若干灯泡和一系列转轮组成;
  • 实际上键盘和第一个转子之间还有一块有块连接板,对应26字母连接板上的交换线共有6根;
  • 密钥是什么?
    1. 转子的初始位置或状态;
    2. 三个转子之间的相互位置;
    3. 连接板的连线状况。
  • 密钥空间有多大?
    1. 三个转子不同位置或状态组成26×26×26=17576种可能性;
    2. 三个转子间不同的相对位置为6种(3!=6)可能性;
    3. 若连接板上连接线数量为p(≤13),共有连接方式:

2.4 古典密码的破解

  • 移位密码、仿射密码、维吉尼亚密码、置换密码等对己知明文攻击都是非常脆弱的。即使用惟密文攻击,大多数古典密码体制都容易被攻破。大多数古典密码体制都不能很好隐藏明文消息的统计特征

2.4.1 单表替代密码分析

  • 加法密码和乘法密码的密钥量比较小,可利用穷举密钥的方法进行破译;

  • 仿射密码、多项式密码的密钥量也只有成百上千,古代密码分析者企图用穷举全部密钥的方法破译密码可能会有一定困难,然而计算机出现后这就很容易了;

  • 本质上,密文字母表是明文字母表的一种排列。但企图使用计算机穷举一切密钥来破译密钥词组替代密码也是计算不可行的。

  • 穷举不是攻击密码的惟一方法,密码分析者便可利用语言的统计特性进行分析。如果明文语言的这种统计特性在明文中有所反映,密码分析者便可通过分析明文和密文的统计规律而破译密码

  • 破译单表替代密码的大致过程是:

2.4.2 多表替代密码分析

  • 首先要确定密钥的长度,也就是要确定所使用的加密表的个数,然后再分析确定具体密钥;
  • 破译思路: 设法找出单密表数(关键词长度),将多表替换→单表替换,再破译单表替换密码。
  • 重要事实:
    用给定的n个字母表周期性地对明文字母加密,则当两个相同的明文段在明文序列中间隔的字母数为n的整数倍时,将加密成相同的密文段。
  • Kasiski的测试过程如下:搜索长度至少为2的相邻的一对对相同的密文段,记下它们之间的距离。而密钥长度n可能就是这些距离的最大公因子。

2.4.3 对Hill密码的已知明文分析

  • Hill密码能较好地抵抗字母频率的统计分析,采用惟密文攻击是较难攻破,但采用已知明文攻击就容易破译。

chapter 2 古典密码技术相关推荐

  1. 周期置换加密算法用c语言实现,古典密码实验报告.doc

    . .. 哈尔滨工程大学 实 验 报 告 实 验 名 称: 古典密码算法 班 级: 学 号: 姓 名: 实 验 时 间: 2014年4月 成 绩: 指 导 教 师: 实验室名称: 哈尔滨工程大学实验室 ...

  2. 有趣的密码学介绍~古典密码之凯撒密码来咯~

    游说万乘苦不早,著鞭跨马涉远道.仰天大笑出门去,我辈岂是蓬蒿人! 文章目录 前言 正文 古典密码 一.古典密码概述介绍 1.置换密码 2.代换密码 二.古典密码分类介绍 1.置换密码 2.编辑本段代换 ...

  3. 【密码学/信息安全】#3 古典密码(含代码)

    密码学的起源: 可以追溯至古埃及时代的象形文字,经过长期的发展演进形成了当前的基于计 算机的密码体制与算法. 密码学所采用的数学工具也由简单的代数逐渐地涵盖到了信息论.数论.概率论.近似代数 等多个学 ...

  4. 密码学复习笔记1【基本概念与传统密码技术】

    0x01.密码学基本概念 通常一个密码体制可以有如下几个部分: 消息空间M(又称明文空间):所有可能明文m的集合: 密文空间C:所有可能密文c的集合: 密钥空间K:所有可能密钥k的集合,其中每一密钥k ...

  5. 密码学-古典密码学习笔记

    文章目录 参考资料 替代技术 单字母表替代密码 凯撒密码 移位密码 仿射密码 针对单字母表替代密码的攻击 多字母表替代密码 Vigenere密码 Hill密码(希尔密码) 置换技术 置换密码的定义 案 ...

  6. 古典密码算法实验c语言,古典密码实验报告.doc

    古典密码实验报告.doc 哈尔滨工程大学实验报告实验名称古典密码算法班级学号姓名实验时间2014年4月成绩指导教师实验室名称哈尔滨工程大学实验室与资产管理处制一.实验名称古典密码算法2.实验目的通过编 ...

  7. 应用密码学实验 古典密码

    实验一 古典密码 单表代替.多表代替 实验目的 通过实验熟悉掌握凯撒密码原理和多表代替密码的实现方法,编译实现加密算法,提高程序设计能力,掌握穷举破译的方法. 实验要求 输入任意的一段明文,对其进行加 ...

  8. 古典密码算法实验c语言,2021信息安全 实验一 古典密码算法C语言.docx

    2021信息安全 实验一 古典密码算法C语言.docx 信息安全信息安全 实验一实验一 古典密码算法古典密码算法 C C 语言语言 信息安全实验报告 课程名称 _ 专业计算机科学与技术 _2010_级 ...

  9. 网络与系统安全笔记------密码技术及应用

    网络与系统安全笔记------密码技术及应用 密码学 密码学分支 密码编码 古典加密技术 现代加密技术 加密解密 密码分析 哈希函数 MD族算法 SHA族算法 完整性保护 认证 对称密码 国际标准 机 ...

最新文章

  1. 插入排序c语言_玩扑克牌中插扑克牌手法就是不一样,C语言经典算法之插入排序...
  2. 电脑安装python3.7说缺少-centos7:python3.7 缺少_ssl模块问题
  3. springIllegalArgumentException Can not set field to $Proxy 在spring中使用事物或AOP遇到的错误
  4. BZOJ 2038: [2009国家集训队]小Z的袜子(莫队算法例题)
  5. 极光尔沃切片软件_极光尔沃3D打印机走进肥东中小学校
  6. 【转】Castle Windsor之组件注册
  7. android 点对点语音,使用Android SIP Stack进行点对点SIP呼叫?
  8. ML.NET 示例:对象检测
  9. shell脚本----for循环-转 Syntax error: Bad for loop variable
  10. Linux 性能监控、测试、优化工具
  11. python进制转换大全
  12. Knockout.Js官网学习(创建自定义绑定)
  13. 《工业设计史》第五章:设计改革
  14. MATLAB 官方文档
  15. 【2020.10.27 牛客 普及组 模拟赛5】T4 飞行棋
  16. 微信支付全流程对接文档
  17. 优秀的程序员是不用过圣诞节的
  18. c++学习笔记:黑客攻击系统-功能菜单
  19. 数字化时代的市场营销
  20. jzoj 5850.【NOIP提高组模拟2018.8.25】e 可持久化线段树+lca

热门文章

  1. 最简洁的呼吸灯实验verilog
  2. 局域网IP变成广域网的IP
  3. Excel的Sumif函数
  4. 互联网+医疗解决方案
  5. 深入理解SHA系列加密算法
  6. 天河二号计算机属于巨型计算机吗,天河二号计算机属于什么机
  7. kettle读取hbase数据
  8. kettle demo6 解压缩
  9. Unity3D编辑器扩展--自定义创建圆锥体
  10. 如何基于IM SDK从零开发移动端聊天功能