密码学中的各类密码汇总(一)
最近上课又重起了密码学,就想对各类密码做一个汇总,看起来更有条理一些:
加密的分类方式有很多,比如按照一般的加密模式或者密钥的数量来分可以分为对称加密和非对称加密(公共密钥加密),按照加密的方式来分可分为替换和换位,按照明文的处理过程来分可分为Block cipher和Stream cipher,等等。
我们先用加密方式,即替换与换位,来划分一下古典密码:
(前提:由于是简单介绍各类密码,所以默认加密明文都是英语26字母(*^▽^*))
一、替换 (Substitution)
The letters of plaintext are replaced by other letters or by numbers or symbols.
也就是说,替换是明文映射到另一个元素,可以是原本明文的元素,也可以是其他元素(数字,符号等)。
1、Caesar cipher(凯撒密码):
设:明文空间为P,密文空间为C,加密算法为E,解密算法为D,则密钥k∈{1,2, ... ,25},
C = E(k, P) = (P + k) mod 26
P = D(k, C) = (C - k) mod 26
注意:(1) 凯撒密码比较简单,就不详细讲述了;
(2) 可被暴力破解:① 加解密算法已知
② 仅25个密钥,数量太少
③ 明文语言已知;
(3) 与换位进行区分:换位只能是原本明文进行换位操作,不会有新加元素。
2、Mono-alphabetic substitution ciphers(单字母替换密码):
顾名思义,每一个明文元素对应一个密文元素,类似一个密码集。
For example:
明密文对应表:
明密文加密效果:
注意:(1) 密钥集有26!种,即种;
(2) 可被频率分析 (Frequency analysis) 破解。
3、Homophonic substitution cipher(同音替换密码):
简单理解就是,一个明文对多个密文。
For example:
A = {x, y}, H(x) = {00, 10} and H(y) = {01, 11}
则H(xy) = {0001, 0011, 1001, 1011}
注意:依然可以破解,双字母组合频率 (digram frequencies)。
4、Playfair cipher(波雷费密码):
使用一个关键词 (keyword),构造一个5*5(基于26个字母)的字母矩阵。
所需知识点:
(1) 关键词 (keyword),一般是字母串,不超过25个;
(2) I和J看做一个字母;
(3) 将关键词的字母放在矩阵的前面,剩余的字母按顺序填充矩阵;
(4) 插入填充符 (insert filler),遇到分组中为重复字母或者字母个数不够分组时使用;
(5) 分组字母在同一行时,各后移一位。如果到达最右侧,则回到本行第一个字母 (back to start from the end);
(6) 分组字母在同一列时,各下移一位。如果到达最底部,则回到本列第一个字母 (back to top from the bottom);
(7) 分组字母不同行同列,各字母所在行与分组另一个字母所在列的交点字母即为加密所得。
For example:
已知:keyword 为 monarchy,
insert filler 为 X,
明文 (Plaintext) 为 BALLOON。
构建矩阵:
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 |
明文分组:BALLOON —> BA LX (LL重复,所以需要填充) LO ON
按照规则进行加密,得:I/JB SU PM NA
注意:为什么分组为两个字母?行列各需一个。
5、Polyalphabetic substitution cipher (多字母替换密码):
使用不同的单字母替换密码,即不同单字母替换密码的组合。
以Vigenere cipher(维吉尼亚密码)为例:
已知:明文 P = , … , ,
密钥 K = , … , Typically m < n,
密文 C = , … , ;
则: = ( + ) mod 26,
= ( − ) mod 26
For example:
已知:密钥为 deceptive,明文为 “we are discovered save yourself”
则加密为:
注意:(1) m<n时,重复密钥使用;
(2) 先选定密钥,再与明文单词模26加。
6、Vernam cipher(佛纳姆密码):
该密码的核心就是异或操作 (XOR),在这简单提一下异或操作:
该密码的流程图为:
明文密文均为二进制进行操作:
注意:和一次一密有什么区别?密钥K的要求没有一次一密那么高。
7、One-time pad(一次性密码):
密钥 K 是绝对随机的,并满足以下几点:
(1) 和明文等长;
(2) 密钥不能重复使用;
(3) 加解密完成后,密钥要被销毁;
(4) 密文中不能有关于明文的任何内容。
该密码流程图为:
注意:(1) 构成 K 的字符流随机,那么加密的 C 的字符流也是随机的,所以保证了不被能破解;
(2) 实际困难:① 需要大量随机密钥 ② 密钥如何分配和保护。
到这,替换密码就汇总结束了,以后有什么新的知识,会继续补充。
That's all, good luck.
密码学中的各类密码汇总(一)相关推荐
- 密码学电子书_密码学中的电子密码书(ECB)
密码学电子书 This Electronic Code Book (ECB) is cryptography as a mode of operation for a block cipher, wi ...
- 维吉尼亚密码和一次性密码本_密码学中的一次性密码
维吉尼亚密码和一次性密码本 The One-time Pad cipher is almost similar to the Vernam cipher, as, like the vernam ci ...
- playfair密码_密码学中的Playfair密码
playfair密码 Playfair cipher is also a substitution cipher technique but it is a bit different than ot ...
- des算法密码多长_密码学中的多个DES
des算法密码多长 This is a DES that was susceptible to attacks due to tremendous advances in computer hardw ...
- des加密密码补位_密码学中的数据加密标准(DES)
des加密密码补位 This is a Data Encryption Standard that is the asymmetric key generation for the encryptio ...
- 密码学+赛博朋克,关于密码朋克们的奇妙故事
注: 本文是仅是一个旁观者的叙述,本文所提到的Hacker,主要是指沉迷于密码学和网络安全方面的计算机科学家. 本号不提供任何投资建议,不接任何PR需求.本文不构成任何投资上的建议. 作者 | 阿法兔 ...
- 【密码学篇】商用密码产品的密钥体系结构小结
[密码学篇]商用密码产品的密钥体系结构小结 商用密码产品的密钥体系结构笔记小结-[蘇小沐] 文章目录 [密码学篇]商用密码产品的密钥体系结构小结 1.商用密码产品密钥体系结构 (一)服务器密码机密钥体 ...
- 我的世界服务器玩家在线指令,我的世界指令大全 各类指令汇总
在我的世界中使用指令的话会给玩家带来很多便利,这次小编就为诸位玩家带来我的世界指令大全 各类指令汇总. Hcharger_hs_training:建图指令map charger_hs_trainin ...
- 密码学中经典算法及应用
一.加密算法理论基础 1.1 背景 密码学相关安全技术在整个信息技术领域的重要地位无需多言.如果没有现代密码学和信息安全的研究成果,人类社会根本无法进入信息时代. 实际上,密码学和安全领域所涉及的知识 ...
- 现代密码学1.3--古典密码/historical cipher
现代密码学1.3--古典密码/historical cipher Caesar's cipher/凯撒密码 The shift cipher/移动密码 The mono-alphabetic subs ...
最新文章
- OCP读书笔记(5) - 使用RMAN创建备份
- 028_SpringBoot整合Redis
- [crypto]-53-openssl命令行的使用(aes/rsa签名校验/rsa加密解密/hmac)
- hdu-2080(三角函数和向量)
- JavaScript高级程序设计58.pdf
- MyBatis关键配置-创建会话工厂
- kubernetes1.8.4安装指南 -- 3. 安装docker ce
- python旋转排序数组_LeetCode(力扣)——Search in Rotated Sorted Array 搜索旋转排序数组 python实现...
- android中常见的错误及解决办法
- abaqus移动热源DFLUX
- Java 打印Word文档
- 强化学习(RL)原理以及数学模型
- Tarjan算法附图详解(SCC)
- Apple个人开发者账号相关问题
- 【华为上机试题C++】老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.
- 除开各种设置自动调节开关,笔记本电脑屏幕亮度自动变亮变暗解决办法
- php防止恶意注册,WordPress防恶意注册-添加验证码功能 | 逗哥-架构师之路
- 【数据可视化】数据可视化之美——用专家的眼光洞察数据
- Android 8.0 添加HIDL
- 带通滤波器中心频率计算公式中R是哪个值_三个零件组成矿石收音机,LC电路谐振频率换算及零件选购是关键...
热门文章
- 计算机重启后打印机无法连接不上,笔记本之前连上了打印机,重启路由后就连不上了,什么原因...
- 《自己动手写网络爬虫》笔记3-宽度优先遍历互联网
- Ruby之父松本行弘:编程是可以干一辈子的
- 如何安装GlobalMapper
- PyQt4入门教程(1)_PyQt介绍及准备工作
- C语言从入门到不放弃---编程环境的搭建到上手写代码
- 【工控老马】PLC六路抢答器系统设计详解
- VMware12虚拟机怎么下载安装?保姆级安装教程,让你一分钟学会
- bochs linux使用教程,bochs 在linux下的安装
- 服务器基础设置:服务器设置PXE启动,