代替技术

代替技术是将明文字母替换成其他字母、数字或符号的方法。

Caesar密码(由Julius Caesar发明)

  • 定义:将字母表中的每个字母,有它之后的第 3 个字母来代替。

    例如:

    明文: meet me after the toga party

    密文: PHHW PH DIWHU WKH WRJD SDUWB

    我们通产用一个数字来代替每一个字母,因此,得到下表:

a b c d e f g h
0 1 2 3 4 5 6 7
i j k l m n o p
8 9 10 11 12 13 14 15
q r s t u v w x
16 17 18 19 20 21 22 23
y z
24 25

则加密算法可以如下表达。对每个明文字母p,代替成密文字母C:

C = E(3,p)= (p + 3)mod 26

移位可以是任意整数k,这样就得到了一般的Caesar算法:

C = E(k,p)= (p + k)mod 26

k ∈ [1,25]

  • 解决手段:穷举攻击

    可以采用穷举攻击的手段,主要是因为:

    1. 已知加密和解密的算法
    2. 需测试的密钥只有25个
    3. 明文所用的语言已知,且其意义易于识别

单表代替密码

  • 定义:每条信息用一个字母表(给出从明文字母到密文字母的映射)加密。

    这种方法大大增大了密钥空间的数量级,如果密文行是26个字母的任意置换,那么就有26!或大于4×10^26^ 种可能的密钥。

    置换是有限元素的集合S的所有元素的有序排列,且每个元素只出现一次。

    例如:如果S = {a,b,c},则S有6个置换:abc,acb,bac,bca,cab,cba

  • 这种方法看似可以抵挡穷举攻击,但启示如果把字母使用的相对评论统计出来,与英文字母的使用评论分布进行比较,就很可能分析出明文了。

    所以其解决手段:字母频率分析(基于明文与密文字母频率相同)

  • 改进方法:在明文信息中采用不同的单表代替,既多表代替密码,下面也会介绍。

    所有这些方法都有以下的共同特征:

    1. 采用相关的单表代替规则集。
    2. 密钥决定给定变换的具体规矩。

Playfair密码

  • 定义:把明文中的双字母迎接作为一个单元并将其转换成密文的“双字母音节”。

    该算法基于一个由密钥词构成的5×5字母矩阵。

  • 加密规则:

    假设密钥词为monarchy。填充矩阵的方法是:首先将密钥词(去掉重复字母)从左至右、从上至下填在矩阵格子里,再将剩余的字母按字母表的顺序从左到右、从上至下填在矩阵剩下的格子李。字母I和J暂且当成一个字母。对明文按如下规则一次加密两个字母:

    1. 如果该字母对的两个字母是相同的,那么在它们之间加一个填充字母,比如x。例如:balloon先把它变成ba lx lo on这样4个字母对。
    2. 落在矩阵同一行的明文字母对中的字母由其右边的字母代替,每行中最右边的一个字母就用该列中最左边的第一个字母来代替,比如ar变成RM。
    3. 落在矩阵同一列的明文字母对中的字母由其下面的字母代替,每行中最下面的一个字母就用该列中最上面的第一个字母来代替,例如mu变成CM。
    4. 其他的每组明文字母对文中的字母则:该字母所在行为密文所在行,另一字母所在列为密文所在列。比如hs变成BP,ea变成IM。
M O N A R
C H Y B D
E F G I/J K
L P Q S T
U V W X Z

- 解决手段:字母频率分析

多表代替加密

  • 定义:多表代替密码中最著名和最简单的是Vignerere密码。它的代替规则集由26个Caesar密码的代替表组成,其中每一个代替表是对明文字母表移位0-25次后得到的代替单表。

  • 假设明文序列为P = p~0~,p~1~,p~2~,…,p~n-1~,密钥由序列K = k~0~,k~1~,k~2~,…,k~m-1~ 构成,其中典型的m

Vernam密码

  • 定义: 1918年AT&T公司的工程师Gilbert Vernam首先引入了这种体制,其运算基于二进制数据而非字母,可以简单表示为:C~i~ = p~i~ ⊕ k~i~

其中:

p~i~ 是明文第i个二进制位

k~i~ 是密钥第i个二进制位

c~i~ 是密文第i个二进制位

⊕是异或运算符

解密过程为:p~i~ = c~i~ ⊕ k~i~

这种技术的本质在于构造密钥的方式。Vernam提出使用连续的磁带,其最终也将循环。所以事实上该体制是使用周期很大的循环密钥。尽管周期很长对于密码分析增添了相当大的难度,但是如果有足够的密文,使用已知或可能的明文序列,或者联合使用两者,该方案是可以被破解的。

一次一密(Vernam密码的改进方案)

  • 定义:使用与消息一样长度且无重复的随机密钥来加密信息

  • 优点:如果用穷举法搜索所有可能的密钥,就会得到大量可读、清楚的明文,但是没法确定哪一个是真正所需要的,因此这种密码不可破。

  • 缺点:

    1. 产生大规模随机密钥由实际困难
    2. 密钥的分配和保护也是问题

【密码学笔记】代替技术相关推荐

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

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

  2. 密码学笔记——eval(function(p,a,c,k,e,d) 加密破解

    密码学笔记--eval(function(p,a,c,k,e,d) 的加密破解 例题: 小明某天在看js的时候,突然看到了这么一段代码,发现怎么也理不出代码逻辑,你能帮帮他吗? 格式:SimCTF{} ...

  3. 汇编语言笔记——接口技术与编程

    文章目录 传送门 储存系统与技术 材料 高速储存器缓冲储存器(Cache) 材料,局部性,访问方式 Cache全相联映射 Cache交换与一致性 单核CPU一致性处理 多核CPU的MESI协议 主储存 ...

  4. 个人学习笔记 ——【技术美术百人计划】图形 2.1 色彩空间介绍

    个人学习笔记 --[技术美术百人计划]图形 2.1 色彩空间介绍 图形 2.1 色彩空间介绍 个人学习笔记 --[技术美术百人计划]图形 2.1 色彩空间介绍 图形 2.1 色彩空间介绍 一.色彩发送 ...

  5. word涂改涂掉图片_一次性学会笔记的技术(6)修改不涂改,让资讯得以追踪

    继续分享一次性学习会笔记的技术系列第六篇文章,本系列文章摘自<經理人月刊.NO.63期.一次學會,筆記的技術>,战隼的学习探索整理,这个系列的文章是我找到各种使用笔记的技巧中最完整.最实用 ...

  6. Electron学习笔记(技术胖)

    Electron学习笔记(技术胖) 标签(空格分隔): 前端 桌面 技术胖 Electron 安装 前提:已经安装node,并且是10以上的版本 cnpm install electron --sav ...

  7. 信息论——密码学笔记(七)

    一.信息论 Claude Elmwood Shannon于1948年首先确立了现代信息论. 1.信息量(amount of information):假设所有消息是等可能的,对消息中所有可能的值进行编 ...

  8. 阿里大神最佳总结Flutter进阶学习笔记,技术详细介绍

    开头 很多人工作了十年,但只是用一年的工作经验做了十年而已. 高级工程师一直是市场所需要的,然而很多初级工程师在进阶高级工程师的过程中一直是一个瓶颈. 移动研发在最近两年可以说越来越趋于稳定,因为越来 ...

  9. 读书笔记:技术的本质-技术是什么,它是怎样进化的 (布莱恩•阿瑟)

    读书笔记算不算原创? - page 30 然而.作为人类,我们实际上不应该和技术如此紧密地结合,而是应该和其它什么东西融合得更为紧密,那就是自然. 在最深的层次上.人的存在应该和自然,和我们最初的环境 ...

最新文章

  1. Nature:手机1秒生成3D全息图;MIT团队新作,索尼投钱支持
  2. DoS***原理和防御方法
  3. set python_python基础:集合-set()
  4. CentOS7上搭建Hadoop集群(入门级)
  5. 在Unity中做一个淡入式的屏幕虚化
  6. opengl坐标转换
  7. haddler处理队列 netty_Netty堆外内存泄漏排查,这一篇全讲清楚了
  8. ​百度网盘下线SVIP免第三方广告特权;小米回应手机异常发热;Windows 11新应用商店将于6月24日亮相|极客头条...
  9. BZOJ3450 Easy
  10. 3D打印文件制作,以及3D打印机使用
  11. C#ADO连接修改Paradox表时“操作必须使用一个可更新的查询”错误的处理办法
  12. 企业微信开发服务端报错汇总(手把手教你企业微信开发五)
  13. iOS从零开始,使用Swift:探索基础框架
  14. 论文阅读:Unprocessing Images for Learned Raw Denoising
  15. 管理学研究中应用计算机仿真,计算机仿真在企业流程再造中应用研究.doc
  16. Android 快递接口
  17. RK3328_LPDDR3D178P132SD4_Template_V11_20170726,RK3328模块原理图和PCB
  18. 微信小程序、uni-app获取经纬度,并将经纬度转化为确定的位置信息
  19. 【VS2022引用其他项目的.cs文件】
  20. QT自带QTcpServer架构分析

热门文章

  1. 屏蔽百家号 -(baijiahao)
  2. deeplabv3+街景图片语义分割,无需训练模型,看不懂也没有影响,直接使用。cityscapes
  3. 2019年考证日历,赶快收藏不要错过考试时间
  4. 更改计算机oem信息软件,计算机属性信息修改方法(OEM信息修改方法)
  5. 亚马逊 AmazonS3的使用
  6. python元组和列表逆序_Python元组和列表你真的用对了吗?
  7. MATLAB | 如何使用MATLAB获取顶刊《PNAS》绘图(附带近3年图像)
  8. -Xmx20m -Xms5m -XX:HeapDumpOnOutofMemoryError -XX:HeapDumpPath=d:/a.dump
  9. 2014上海计算机一级理论,2014年上海市计算机一级考试理论试题(A—H).doc
  10. 专访迅雷首席工程师:迅雷的下一代互联网底层技术构想