[密码学篇]古典密码详述
文章目录
- 古典密码
- 置换密码
- 代换密码
- 单表代换密码
- 凯撒密码
- 仿射密码
- 简单替换密码
- 多表代换密码
- 维吉尼亚密码
- 棋盘密码(Polybius)
- 希尔(Hill)密码
- Playfair密码
- 系列文章
古典密码
古典密码
古典密码编码方法主要有两种
- 置换
- 代换
置换密码
简介
加密: 将明文字符按照一定的规则移动位置,得到排列错乱的密文,字符本身不变
解密: 将密文字符按照响应的逆向规则还原成原来的顺序
密钥: 移位规则
列置换
将明文按固定长m分组,即每行m个字母,在密钥控制下按某一顺序交换列,最后按列优先的顺序依次读出,即产生了密文。
周期置换
很大程度上同列置换,只不过加、解密时,在列交换后是按行优先的顺序向下进行。
数学描述
对于密码体制的五元组(P,C,K,E,D)有:
置换密码举例
设m=6,密钥为如下的置换Π:
x | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
Π(x) | 3 | 5 | 1 | 6 | 4 | 2 |
将两行对调并重新排序可得逆置换Π-1如下:
y | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
Π-1(y) | 3 | 6 | 1 | 5 | 2 | 4 |
即有:
所以现在我们使用该密码加密明文:abcdefghijkl
"step1"#首先将明文字母每6个分成一组
'|'abcdef '|' ghijkl'|'"step2"#对每组字母使用加密变换
(1)a ==>(1->3) ==>c
(2)b ==>(2->5) ==>e
(3)c ==>(3->1) ==>a
(4)d ==>(4->6) ==>f
(5)e ==>(5->4) ==>d
(6)f ==>(6->2) ==>b
所以abcdef加密之后为:ceafdb"step3"
重复step2,直到加密完成
代换密码
简介
加密: 将明文字符按照对应关系代换成另外的密文字符
解密: 将密文字符按照对应关系代换成另外的明文字符
密钥: 对应关系
常见密码
棋盘密码
凯撒密码
维吉尼亚密码
希尔密码
...
单表代换密码
数学描述
对于密码体制的五元组(P,C,K,E,D)有:
注意:
加密函数函数必须是单射
加密函数和解密函数要保持一致性
凯撒密码
原理
凯撒密码(Caesar)加密时会将明文中的 每个字母 都按照其在字母表中的顺序向后(或向前)移动固定数目(循环移动)作为密文。
根据偏移量的不同,还存在若干特定的恺撒密码名称:
偏移量为 10:Avocat (A→K)
偏移量为 13:ROT13
偏移量为 -5:Cassis (K 6)
偏移量为 -6:Cassette (K 7)
凯撒密码举例
若明文: HELLO
已知密钥:K=3
则有对应关系:
# A => D (K=+3)
H => K
E => H
L => O
O => R
所以HELLO进行凯撒加密后的密文则为:KHOOR
仿射密码
定义
仿射密码对于密码体制的五元组(P,C,K,E,D)有:
注:
当a=1时,该仿射密码又称为移位密码
密钥空间大小£(26)x26=312#£(26) = 2x13
仿射密码举例
已知:
由表可得hot对应的明文数值为7,14,19.
分别加密过程如下:
(7 x 7 + 3)mod(26) = 52mod(26) = 0
(7 x 15 + 3)mod(26) = 101mod(26) = 23
(7 x 19 + 3)mod(26) = 136mod(26) = 6
所以hot对应的3个密文值分别为0、23、6
则密文为:axg
简单替换密码
原理
简单替换密码(Simple Substitution Cipher)加密时,将每个明文字母替换为与之唯一对应且不同的字母。
区别
它与恺撒密码之间的区别是其密码字母表的字母不是简单的移位,而是完全是混乱的,这也使得其破解难度要高于凯撒密码。
简单替换密码举例
现有需加密明文:
明文: lazy dog
已知以下对应关系:
明文: abcdefghijklmnopqrstuvwxyz
密钥: phqgiumeaylnofdxjkrcvstzwb
由该关系可得:
a => p
b => h
c => q
...
所以最终得到密文:
明文: lucy dog
密文: nvqw gdm
多表代换密码
介绍
由于代表代换密码的安全性不高,原因是一个明文字母只由一个密文字母代替(可利用频率分析
破译)。故产生了更为安全的多表代换密码.
定义
多表代换密码即构造多个密文字母表,在密钥的控制下用以一系列代换表依次对明文消息的字母序列进行代换。
维吉尼亚密码
定义
对于密码体制的五元组(P,C,K,E,D)有:
维吉尼亚密码举例
假设m=6,密钥字为CIHPHER
,需加密的明文:
thiscryptosystemisnotsecure
已知:
由表可得密钥字对应的字符串为:
K = (2,8,15,7,4,17)
则其加密过程为:
即:
"step1"
#将明文按密钥K划分为6个一组,如下:
thiscr => 19 7 8 18 2 17
yptosy => 24 15 19 14 18 24
stemis => 18 19 4 12 8 18
notsec => 13 14 19 18 4 2
ure => 20 17 4"step2"
#分别将每一组按照密钥K进行加密:
19 7 8 18 2 17(明文:thiscr)
2 8 15 7 4 17
21 15 23 25 6 8(密文:vpxzgi)#21=19+2#8=17+17mod(26)=8
...
重复以上步骤即可得到密文:vpxzgiaxivwpubttmjpwizitwzt
关于维吉尼亚密码的详细分析可见维吉尼亚密码详解
棋盘密码(Polybius)
原理
Polybius密码又称为棋盘密码,其一般是将给定的明文加密为两两组合的数字,其常用密码表:
棋盘密码(例)
若明文:HELLO
由棋盘中的对应关系可知
23 => H
15 => E
31 => L
34 => O
所以HELLO进行"棋盘"加密后的密文则为:2315313134
希尔(Hill)密码
原理
希尔密码(Hill)使用每个字母在字母表中的顺序作为其对应的数字,即A=0,B=1,C=2 等,然后将明文转化为 n 维向量,跟一个 n × n 的矩阵相乘,再将得出的结果模 26。
数学描述
希尔密码对于密码体制的五元组(P,C,K,E,D)有:
希尔密码举例
假设明文为july,其加密过程则为:
已知:
所以由表可得july的密文为:delw
Playfair密码
原理
- 选取一串英文字母,除去重复出现的字母,将剩下的字母逐个逐个加入 5 × 5 的矩阵内,剩下的空间由未加入的英文字母依 a-z 的顺序加入。注意,将 q 去除,或将 i 和 j 视作同一字。
- 将要加密的明文分成两个一组。若组内的字母相同,将 X(或 Q)加到该组的第一个字母后,重新分组。若剩下一个字,也加入 X 。
- 在每组中,找出两个字母在矩阵中的地方。
# 3. 在每组中,找出两个字母在矩阵中的地方。(1)若两个字母不同行也不同列在矩阵中找出另外两个字母(第一个字母对应行优先)使这四个字母成为一个长方形的四个角(2)若两个字母同行取这两个字母右方的字母(若字母在最右方则取最左方的字母)(3)若两个字母同列取这两个字母下方的字母(若字母在最下方则取最上方的字母)
Playfair密码举例
以playfair example
为密钥,可得到:
P L A Y F
I R E X M
B C D G H
K N O Q S
T U V W Z
需加密明文为:Hide the gold in the tree stump
加密:
"step1"#首先将要加密的明文分成两个一组
HI DE TH EG OL DI NT HE TR EX ES TU MP"step2"#根据加密原理便可得到
BM OD ZB XD NA BE KU DM UI XM MO UV IF
系列文章
为了方便复习,所以决定该密码学系列的文章章整合在一起:
1 密码学的基本概念
2 关于维吉尼亚密码的剖析
参考资料:
Playfair密码
[密码学篇]古典密码详述相关推荐
- 【密码学篇】密码行业标准汇总(GM)
[密码学篇]密码行业标准汇总(GM) 截止到2023年03月10日,共130个密码行业标准,适用商用密码应用与安全性评估等密码行业,可点击链接预览或下载标准-[蘇小沐] 文章目录 [密码学篇]密码行业 ...
- 有趣的密码学介绍~古典密码之凯撒密码来咯~
游说万乘苦不早,著鞭跨马涉远道.仰天大笑出门去,我辈岂是蓬蒿人! 文章目录 前言 正文 古典密码 一.古典密码概述介绍 1.置换密码 2.代换密码 二.古典密码分类介绍 1.置换密码 2.编辑本段代换 ...
- 应用密码学实验 古典密码
实验一 古典密码 单表代替.多表代替 实验目的 通过实验熟悉掌握凯撒密码原理和多表代替密码的实现方法,编译实现加密算法,提高程序设计能力,掌握穷举破译的方法. 实验要求 输入任意的一段明文,对其进行加 ...
- 【密码学篇】GM密码行业标准下载方法
[密码学篇]GM密码行业标准下载方法 截止到2023年07月08日,密码行业标准化技术委员会共发布了144个密码行业标准,可点击链接预览或使用IDM下载器下载标准,此外该方法很多场景都适用,自行尝试- ...
- 古典密码的演化 (一)— 密码学复习(二)
复习完密码学的基本概念后,下面对古典密码进行简单的复习.下图列出的是经典密码体制的框图.(由于比较懒就直接放笔记的照片了⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄) 古典密码学大体上可以分为 代换密码 和 置换密 ...
- 密码学-古典密码学习笔记
文章目录 参考资料 替代技术 单字母表替代密码 凯撒密码 移位密码 仿射密码 针对单字母表替代密码的攻击 多字母表替代密码 Vigenere密码 Hill密码(希尔密码) 置换技术 置换密码的定义 案 ...
- 密码学基础知识(三)古典密码
说完了前面那些,想起个事,本系列依据内容主要来自<现代密码学>马春光编著.我就是学这本书的. 好了,古典密码就是古时候的密码,哈哈,逗你玩的,shannon的保密系统的通信理论发表前的都是 ...
- 1.密码学概念及古典密码
一.前言 信息安全面临的威胁无处不在,多为人为威胁,也就是对信息的人为攻击,人为攻击可分为被动攻击和主动攻击. 被动攻击:即为窃听,分为两类:一类是消息内容获取:另一类是业务流分析,如获取消息的格式, ...
- 【密码学篇】商用密码产品的密钥体系结构小结
[密码学篇]商用密码产品的密钥体系结构小结 商用密码产品的密钥体系结构笔记小结-[蘇小沐] 文章目录 [密码学篇]商用密码产品的密钥体系结构小结 1.商用密码产品密钥体系结构 (一)服务器密码机密钥体 ...
- 【密码学/信息安全】#3 古典密码(含代码)
密码学的起源: 可以追溯至古埃及时代的象形文字,经过长期的发展演进形成了当前的基于计 算机的密码体制与算法. 密码学所采用的数学工具也由简单的代数逐渐地涵盖到了信息论.数论.概率论.近似代数 等多个学 ...
最新文章
- 如何在freemarker寻找元素_如何让你的网站ui设计更加优秀
- 实现Windows XP多用户远程登录
- python自动点击脚本_[Python] 【Python3】教你写页游自动化Python脚本 3.取色,大漠识别和后台点击...
- GC之7大垃圾收集器详解(下)
- CABasicAnimation fillMode和removedOnCompletion
- 更新node最新版本方法和 npm install -g n 运行错误
- nacos启动失败:org.springframework.boot.web.server.WebServerExceptio
- angular面试题及答案_关于最流行的Angular问题的StackOverflow上的48个答案
- oracle视图执行脚本,Sh脚本中查询Oracle v$视图时需要在$号前加转义符“\”
- 关于计算机网络的短文英语,英语翻译哪个心心好嘛!帮我用英语写一段关于计算机网络的100多个字的短文嘛!内容随便写!只要是关于计算机网络的!...
- 如何系统的自学python-应该怎样系统的学习Python标准库?
- grub2使用详解(官方手册)
- win10 linux 无法下载,大神为你win10系统无法安装ubuntu的处理
- HTML-表单table
- crt 生成pem_linux下pem转crt命令_crt转pem方法
- linux登录界面鼠标键盘失灵,vmware+centos7+启动在登录界面鼠标键盘都不可用
- 唯品会还“品“的动吗?
- log4cpp初入门
- Latex数学公式转Word公式
- Unity3D中使用easyroad3d插件 删除道路