古典密码学笔记

2023-11-20 16:18
文章标签 笔记 密码学 古典

本文主要是介绍古典密码学笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

//我在一个贴吧见到的密码学笔记,特地整理下来,以作参考
1.字母表顺序加密
字母 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
数字 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
2.进制转换密码
例如二进制:1110 10101 1101 10 101 10010 1111 1110 101
转为十进制:14 21 13 2 5 18 15 14 5
对应字母表:number
3.mod算法
对字母序号进行数学运算,所得结果作为密文,结果大于26或小于1,mod取余
4.倒序加密
单词倒序: siht si a tset - this is a test
整句倒序: tset a si siht - this is a test
数字倒序: 02 50 91 02 - 20 05 19 20 (test)

5.间隔加密
单词间用空格,加密用特定字符或数字代替空格,起混淆作用
错误位置空格:t hi sis at est - this is a test

6.字母频率加密
频率分析法有效破解字母替换密码
英文字母出现频率字母表(数字为出现百分比)

a  8.2    b  1.5    c  2.8    d  4.3
e 12.7    f  2.2    g  2.0    h  6.1
i  7.0    j  0.2    k  0.8    l  4.0
m  2.4    n  6.7    o  7.5    p  1.9
q  0.1    r  6.0    s  6.3    t  9.1
u  2.8    v  1.0    w  2.4    x  0.2
y  2.0    z  0.1

7.凯撒加密
最简单的移位密码
加密公式:密文 = (明文 + 位移数) Mod 26
HL FKZC VD LDS => IM GLAD WE MET (位移为1)
解密公式:明文 = (密文 - 位移数) Mod 26
列出所有组合,25位为一个循环
phhw ph diwhu wkh wrjd sduwb => meet me after the toga party
中文凯撒加密
按照中文字在Unicode编码表中的顺序进行移位
转换成Unicode编码:中文凯撒移位
移1位后成为: 丮斈凰撓秼低
8.栅栏密(栅栏易位)
将要传递信息字母排列成矩阵(矩阵A x B),从上往下读取
例如密文:TEOGSDYUTAENNHLNETAMSHVAED

解密过程:先将密文分为两行T E O G S D Y U T A E N N
H L N E T A M S H V A E D上下上下读取组合:
THE LONGEST DAY MUST HAVE AN END

9.维吉尼亚密码
加密公式:密文 = (明文 + 密钥) Mod 26 - 1
解密公式:明文 = [26 + (密文 - 密钥)] Mod 26 + 1
查表法(密钥×明文):

  a b c d e f g h i j k l m n o p q r s t u v w x y z
a A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
b B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
c C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
d D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
e E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
f F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
g G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
h H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
i I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
j J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
k K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
l L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
m M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
n N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
o O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
p P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
r R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
s S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
t T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
u U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
v V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
w W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
x X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y 密钥:ha ve ha veh av eh aveh av eha vehaveha (have)
明文:to be or not to be that is the question
密文:ao wi vr isa tj fl tcea in xoe lylsomvn

10.Polybius密码(棋盘密码)
(约定)混杂字母表方阵:
A D F G X
A b t a l p
D d h o z k
F q f v s n
G g j c u x
X m r e w y
明文:A T T A C K A T O N C E
密文:AF AD AD AF GF DX AF AD DF FX GF XF
A,D,F,G,X用1,2,3,4,5代替

密文:13 12 12 13 43 25 13 12 23 35 43 53
-----------------------------------------
下一步,利用一个移位密钥加密
移位密钥:CARGOC A R G O_________A F A D AD A F G FD X A F AD D F F XG F X F X最后,密钥按照字母表顺序“ACGOR”排序,再按照此顺序依次抄下每个字母下面的整列讯息,形成新密文。
最后密文:FAXDF ADDDG DGFFF AFAXX AFAFX

11.乘法密码
类似于凯撒加密,凯撒加密采用加法,乘法密码采用乘法
加密公式:密文 = (明文 * 乘数) Mod 26
只有当乘数与26互质时,加密之后才会有唯一的解,因此乘数只可能有如下11种的选择:
乘数 = 3,5,7,9,11,15,17,19,21,23,25
12.仿射密码
仿射密码就是凯撒密码和乘法密码的结合.
加密公式:密文 = (明文 * 乘数 + 位移数) Mod 26
13.希尔密码
加密
例如:密钥矩阵
1 3
0 2

明文:HI THERE去空格,2个字母一组,根据字母表顺序换成矩阵数值如下,末尾的E为填充字元:HI TH ER EE
8  20 5  5
9  8  18 5HI 经过矩阵运算转换为 IS,具体算法参考下面的说明:|1 3| 8 e1*8+3*9=35 MOD26=9 =I
|0 2| 9 e0*8+2*9=18 MOD26=18=S用同样的方法把"HI THERE"转换为密文"IS RPGJTJ"

14.Playfair密码
Playfair将明文中的双字母组合作为一个单元对待,并将这些单元转换为双字母组合。
加密后的字符出现的频率在一定程度上被均匀化。

5*5变换矩阵(I或J视为同一字符):C I P H ER A B D FG K L M NO Q S T UV W X Y Z加密规则:按成对字母加密相同对中的字母加分隔符(如x)
ballon -> ba lx lo on
同行取右边:he->ec
同列取下边:dm->mt
其他取交叉:kt->mq  od->tr例如:ballon -> ba lx lo on -> db sp gs ug

15.摩斯电码
国际标准摩斯电码表

1 *----    A *-     N -*     [.] *-*-*-
2 **---    B -***   O ---    [,] --**--
3 ***--    C -*-*   P *--*   [:] ---***
4 ****-    D -**    Q --*-   ['] *----*
5 *****    E *      R *-*    [?] **--**
6 -****    F **-*   S ***    [-] -****-
7 --***    G --*    T -      [()] -*--*-
8 ---**    H ****   U **-    [@] *--*-*
9 ----*    I **     V ***-   [—] -***-
0 -----    J *---   W *--    分数线 -**-*

     K -- X -*-
    L -* Y -– 终了[\r] **-*-
     M – Z –* 始信[\n] --*-

例:Hello (斜线代表字母之间的间隔)
****/*/*-**/*-**/---/

16.网页字符
百度字符:GB2312
密文(GB码16进制):%C4%E3%BA%C3
密文(GB码十进制):50403 47811
明文:你好

google字符:url
密文(URI):%E4%BD%A0%E5%A5%BD
明文:你好 网页编码:Unicode(十进制)
Unicode:一种全世界范围的文字编码

17.MD5
MD5:Message-Digest Algorithm 5(信息摘要算法)
是一种摘要算法,用于比对信息,并不是用来加密。
由于是摘要算法,所以无法真正破解。
所谓”破解”即找碰撞。
王小云提出算法,可快速找到碰撞。
现在MD5任然很安全。
18.数字谐音密码
一些常见的数字谐音:
119425 你依旧是爱我 12746 你恶心死了 12825 你爱不爱我
13456 你相思无用 1437 你是神经 14517 你是我氧气
14527 你是我爱妻 14535 你是否想我 14551 你是我唯一
1456 你是我的 14567 你是我老妻 1457 你是我妻
145692 你是我的最爱 1487 你是白痴 1487561 你是白痴无药医
1564335 你无聊时想想我 1594184 你我就是一辈子 165 原谅我
16537 你惹我生气 17382 你欺善怕恶 1748 你去死吧
17868 你吃饱了吧 18056 你不理我啦 1837 你别生气
18376 你别生气了 195 你找我 198 你走吧
1240 最爱是你 1314 一生一世 1314925 一生一世就爱我
1372 一厢情愿 1392010 一生就爱你一个 1414 意思意思
147 一世情 1573 一往情深 1711 一心一意
210 爱你哦 21111 爱你一亿年 21161 爱你一万年
211701 爱你一千年 21184 爱你一辈子 2131999 爱你想你久久久
2137 为你伤心 21475 爱你是幸福 20609 爱你到永久
207374 爱你七生七世 21863 爱你到来生 21999 爱你久久久
221225 爱爱你爱爱我 230 爱上你 234 爱相随
135 要想你 241 爱死你 246 饿死了
246437 爱是如此神奇 25184 爱我一辈子 25873 爱我到今生
25910 爱我久一点 259695 爱我就了解我 259758 爱我就娶我吧
2627 爱来爱去 282 饿不饿 2925184 爱就爱我一辈子
296 爱走了 311 想你哦 31921 想你就爱你
319421 想你就是爱你
3113 想你一生 311 先依你 3707 LOVE(BP倒过来看)
32112 想念你的爱 32169 想爱你很久 3217778 想和你去吹吹风
331335 想想你想想我 3344 生生世世 3399 长长久久
356 上网了 35911 想我久一点 359258 想我就爱我吧
361 想念你 369958 神啊救救我吧 3731 真心真意
39 THANK YOU 4422335 时时刻刻想想我 4457 速速回机
456 是我啦 461 思念你
505 SOS 517681 我一定要追你 511 我依你(我已来)
51121 我依然爱你 51195 我要你嫁我 51396 我要睡觉了
514 无意思 515216 我已不爱你了 51621 我依然爱你
51821 我已不爱你 518721 我一辈子爱你 51921 我依旧爱你
51930 我依旧想你 520 我爱你 5211314 我爱你一生一世
52194 我爱你到死 521 我愿意 521*010000 我爱你–一万年
5231 我爱上你 5241 我爱是你 52416 我爱死你了
526 我饿了 5261 我暗恋你 531 我想你
531184 我想你一辈子 53416 我想死你了 53217778 我想和你去吹吹风
5361 我想念你 5366 我想聊聊 53517231 我想我已经爱上你
5376 我生气了 53719 我深情依旧 53771 我想亲亲你
53782 我心情不好 53881 我想抱抱你 53981 我想揍扁你
41186 我是你女朋友 54133 我是你先生 5416 我是你的
417 我是你妻 54164 我是你老师 54174 我是你妻子
54186 我是你八啦 5421 我只爱你 54335 无事想想我
543721 我是真心爱你 54431 我时时想你 5452831 无时无刻不想你
546 我输了 5461 我思念你 5491 我去找你
54921 我始终爱你 555 呜呜呜 554528196 我无时无刻伴你左右
55646 我无聊死了 556521 我不能不爱你 558 午午安
55926 我有多无聊 5621 我很爱你 562159487 我若爱你我就是白痴
5631 我很想你 564335 无聊时想想我 5671 我要娶你
571 我气你 57351 我只在乎你 57386 我去上班了
57410 我心属于你 574839 我其实不想走 57521 吾妻我爱你
576 我去了 5776 我出去了 578 补习班
58 晚安 584521 我发誓我爱你 586 我不来
587 我抱歉 5871 我不介意 592 我好饿
59241 我最爱是你 59421 我就是爱你 59431 我就是想你
59521 我永远爱你 596 我走了 5976 我到家了
619 到永久 6121 懒得理你 6785753 老地方不见不散
6868 溜吧!溜吧! 687 对不起
71345 请你相信我 716 起来吧 71626 请你留下来
7186 七零八落 7187 请你别走 71885 请你帮帮我
721 亲爱的 729 去喝酒 7319 天长地久
737421 今生今世爱你 73817 情深怕缘浅 73748196 今生今世伴你左右
741 气死你 745 气死我 7418695 其实你不了解我
745421 其实我是爱你 74839 其实不想走 7474174 去死去死你去死
756 辛苦了 765 去跳舞 7758521 亲亲我吧我爱你
7678 吃饱了吗 7731 心心相印 771880521 亲亲你抱抱你我爱你
7752 亲亲吾爱 77543 猜猜我是谁 775885 亲亲我抱抱我
77895 紧紧抱着我 786 吃饱了 7998 去走走吧
8116 不理你了 8113 伴你一生 8174 把你气死
8184 BABY 819 保龄球 82475 被爱是幸福
825 别爱我 837 别生气 8384 不三不四
85 帮我 85941 帮我告诉他 885 帮帮我
861 不理你 865 别惹我 8716 八格耶鲁–混蛋
881 拜拜唉 898 分手吧 8834761 漫漫相思只为你
886 拜拜罗
912535 求你爱我想我 917753 叫你去吃午餐 9189 求你别走
911 就依你 918 加油吧 921 就爱你
9213 钟爱一生 931 好想你 93111 就想见见你
941194 告诉你一件事 95 救我 98 早安
987 对不起 9918875 求求你别抛弃我 995 救救我
19.手机键盘
20.输入法

这篇关于古典密码学笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/395861

相关文章

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus