首页 > 其他分享 >【密码学】古典密码

【密码学】古典密码

时间:2022-11-27 13:36:56浏览次数:67  
标签:20 字母 明文 密码 密钥 古典 密文 密码学

1.置换密码

//加密
把明文字母重新排序
明文:MING CHEN WU DIAN FA DONG FAN GONG明晨五点发动反攻
密文:GONG NAFG NODA FNAI DUWN EHCG NIM

2.代替密码

2.1单表代替密码

2.1.1加法密码

一种简单的替代密码。密钥域很小,易受使用穷举密钥搜索的纯密文攻击。凯撒密码就是一种典型的加法密码,基本思想是通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量为3时,所有的字母A将被替换成D,B变成E,

2.1.2乘法密码

j=ik(mod n) ,gcd(k,n)=1,进而有i=jk(modn),密码才能正确解密。

乘法密码也称采样密码,因为密文字母表是将明文字母按照下标每隔k位取出一个字母排列而成。

例如对26个字母生成密码表(下标由0开始,0-25)

取k=9

明文字母  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

数组下标  0 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

密文字母  a j s  b k  t  c  l  u  d  m  v  e  n  w  f  o  x  g  p  y  h  q  z  i  r

数组下标  0 9 18 1 10 19 2  11 20 3  12 21 4  13 22 5  14 23 6  15 24 7  16 25 8  17

关于求k逆元

欧拉定理(费马小定理)欧拉定理:

若a与n互质,那么有aφ(n)≡1(mod n)

则a-1 =a(φ(n)-1) (mod n)

2.1.3仿射密码

加法密码和乘法密码的结合

仿射密码是一种替换密码。它是一个字母对一个字母的。它的加密函数是

【密码学】古典密码_代数密码

其中a和m​​互质​​,m是字母的数目。解码函数是

【密码学】古典密码_多表代替密码_02

,其中a-1是a在Zm群的​​乘法逆元​​。

2.1.4密钥词语代替密码

//加密
明文:MING CHEN WU DIAN FA DONG FAN GONG明晨五点发动反攻
数字序列:653142
矩阵:MINGCH
ENWUDI
ANFADO
NGFANG
ONG$$$(使用$填充)
密文:GUAA$HIOG$NWFFGCDDN$MEANO
可以用词语作为密钥,去掉重复的字母,按照字母表给剩余的字母1排序
例如:YU LAN HUA(玉兰花)
去掉重复的:YULANH
在字母表中的先后顺序:653142

//解密
解密过程即按照密钥所示的长度顺序恢复出矩阵,再按行读取即可。
密文:GUAA$ HIOG$ NWFFG CDDN$ MEANO
数字序列:653142
矩阵:MINGCH
ENWUDI
ANFADO
NGFANG
ONG$$$
明文:MINGCHENWUDIANFADONGFANGONG

2.2多表代替密码

最著名的多表代替密码:Vigenre密码

加密方法:根据密钥来决定用哪一行的密表来进行替换。

例如:明文是D  ;密钥是C ;那么就在C对应的密表中找D对应的密文F

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

2.3多名代替密码

多名代替密码是指映射一对多,每个明文字母可以加密成多个密文字母,是一个安全性较高的密码。

明文:DATE TIME
密文:40 16 25 2 86 4 10 15(完全随机)

多名密码字母表:

【密码学】古典密码_代数密码_03

3.代数密码

Vernam加密法也称一次一密(One-Time-Pad),用随机的非重复的字符集合作为输出密文.这里最重要的是,一旦使用了变换的输入密文,就不再在任何其他消息中使用这个输入密文(因此是一次性的).输入密文的长度等于原消息明文的长度.

以下是主要步骤.
1.按递增顺序把每个明文字母作为一个数字,A=0,B=1等等.
2.对输入明文中每一个字母做相同的处理.
3.将明文中的每个字母与密钥中的相应字母相加.
4.如果得到的和大于26,则从中减去26.
5.将和转化为字母,从而得到密文.

假设对明文消息HOW ARE YOU进行Verman加密,
一次性密钥为NCBTZQARX得到的密文消息UQXTUYFR.

明文 H O W A R E Y O U
7 14 22 0 17 4 24 14 20

密钥 N C B T Z Q A R X
13 2 1 19 25 16 0 17 23

初始和 20 16 23 19 42 20 24 31 43

大于25则减去26

20 16 23 19 16 20 24 5 17

密文 U Q X T Q U Y F R

标签:20,字母,明文,密码,密钥,古典,密文,密码学
From: https://blog.51cto.com/u_15420562/5890008

相关文章

  • Ubuntu系统安装后开启ssh服务及修改root密码
    平时基本不用ubuntu系统,第一次安装用还不太习惯。Ubuntu默认root密码是随机的,也不是安装时候人工设置,需要安装完自行重置。1、重置root密码sudopasswd输入新密码,修改......
  • 服务器密码以及用户名怎么修改
    服务器密码以及用户名怎么修改​我是艾西,今天给大家说下服务器密码如何修改​windows2003系统:​1、右键我的电脑,点击“管理”:​2、在“本地用户和组”中打开“用户”,在右侧......
  • ctf hub 技能树 密码口令
    弱口令这一关可以通过暴力破解的方式跑出来。具体方式就是burp抓包后发送到狙击手模块。。然后设置变量,暴破但是我的top1000字典没有跑出来。。。没办法又用字典......
  • 虚拟机重置root用户密码
    虚拟机root用户重置密码在打开虚拟机在出现下图界面的时候按e进入管理界面e要快速按不然就会直接进入虚拟机然后找到UTF-8在后面添加rd.break输入完后按Ctrl......
  • mysql忘记密码(Navicat)
    Navicat已经成功连接,密码忘记的解决方法。本文属于转载,转载地址:https://blog.csdn.net/zcxbd/article/details/122876238背景:Windows环境办法:通过注册表查找......
  • Applied Cryptography(6)——利用密码学解决问题(Using Cryptography to Solve Problems)
    利用密码学解决问题利用密码学解决问题洋葱路由(OnionRouting)MixNetworks基于RSA的盲签名(BlindRSAsignatures)不同于之前学习的利用密码学解决传统的安全通信......
  • Mysql密码策略
    一、查看当前密码策略showvariableslike'validate_password%'; 关于mysql密码策略相关参数validate_password.length固定密码的总长度;validate_password.......
  • kali linux 2022.1版本root密码重置
    1、按e进入修复模式2、在linux行尾输入rwsingleinit=/bin/bash3、Ctrl+x进入命令行界面4、使用passwd命令修改root密码,完成后重启5、使用root用户登录6、重置成功......
  • 直播app源码,输入密码和用户名调用开发者工具
    直播app源码,输入密码和用户名调用开发者工具 <!DOCTYPEhtml><html><head> <metacharset="UTF-8"> <metahttp-equiv="X-UA-Compatible"content="IE=edge"> <me......
  • mysql破解root密码
    #设置免密登录echoskip-grant-tables>>/etc/my.cnfsystemctlrestartmysqld#设置密码为空mysql-e'usemysql;updateusersetauthentication_string=""where......