古典密码简介

从密码学发展历程来看,可分为古典密码(以字符为基本加密单元的密码)以及现代密码(以信息块为基本加密单元的密码)两类。而古典密码有着悠久的历史,从古代一直到计算机出现以前,古典密码学主要有两大基本方法:

置换密码(又称易位密码):明文的字母保持相同,但顺序被打乱了。

代替密码:就是将明文的字符替换为密文中的另一种的字符,接收者只要对密文做反向替换就可以恢复出明文。

古典密码是密码学的根源,虽然都比较简单而且容易破译,但研究古典密码的设计原理和分析方法对于理解、分析以及设计现代密码技术是十分有益滴^_^

一.置换密码

1.列置换密码(矩阵置换密码)

明文:ming chen jiu dian fa dong fan gong

密钥:yu lan hua

去掉密钥重复字母:yulanh,得出距阵列数为6;将明文按行填充距阵。

得到密钥字母顺序: 653142;

按列(依顺序)写出距阵中的字母。

密文:giffg hddn0 njngn cuaa0 inano meiog

解密:加密的逆过程;

2.周期置换密码

  周期置换密码是将明文串P按固定长度m分组,然后对每组中的子串按1,2,...,m的某个置换重排位置从而得到密文C。其中密钥σ包含分组长度信息。解密时同样对密文C按长度m分组,并按σ的逆置换σ-1把每组子串重新排列位置从而得到明文P。

明文:State Key Laboratory of Networking and Switching

加密密钥:σ=(15623)

明文分为七组:(StateK)(eyLabo)(ratory)(ofNetw)(orking)(andSwi)(tching)

加密变换:密钥里没有4,则第4位保持不变,然后对应的第1位换到第5位,第5位换到第6位,第6位换到第2位....

密文:(aKttSe)(Loyaeb)(tyaorr)(Nwfeot)(kgrion)(dinSaw)(hgcitn)

解密密钥:σ-1 = (13265)

3.栅栏密码

此密码一般适用于较短的密码,原理是字母的错位。操作步骤如下:
this little child is funny(原句)
thislittlechildisfunny(去掉空格)
t i l t l c i d s u n
h s i t e h l i f n y(上下拆开)
tiltlcidsunhsitehlifny(合并)
破译时只要按照相反的步骤来就行了。
另一种栅栏密码的操作步骤如下:
this little child is funny(原句)
thislittlechildisfunny(去掉空格)

thislittlec     hildisfunny(左右拆开)
th
hi
il
sd
li
is
tf
tu
ln
en
cy
thhiilsdliistftulnency(合并)
当用中文的汉语拼音做栅栏密码时十分有趣,可以选择用声母做前排,韵母做后排。例如:
zhong hua ren min gong he guo(原句)
zhonghuarenmingongheguo(去掉空格)
zh h r m g h g
ong ua en in ong e uo
zh in
ong g
h ong
ua h
r e
en g
m uo(上下或左右拆开)
zhhrmghgonguaeninongeuo
zhinongghonguahreengmuo(合并)

二.代替密码

1.凯撒(Caesar)密码

  据记载在罗马帝国时期,凯撒大帝曾经设计过一种简单的移位密码,用于战时通信。这种加密方法就是将明文的字母按照字母顺序,往后依次递推相同的字母,就可以得到加密的密文,而解密的过程正好和加密的过程相反。
例如:明文 battle on Sunday 密文 wvoogz gi Npiyvt (将字母依次后移5位)
  如果我们令 个字母分别对应于整数 ~ , ,则凯撒加密方法实际上是进行了一次数学取模为26的同余运算,即其中m是明文对应的数据,c是与明文对应的密文数据,k是加密用的参数,也叫密钥。比如:battle on Sunday对应数据序列为020120201205 1514 192114040125 若取密钥k为5时,得密文序列070625251710 2019 240019090604。这样我们也可以用数字来代替字母进行传递信息,也方便用数学变换和计算机编程进行加密与解密。

2.棋盘密码

  棋盘密码通过将26个英文字母设法变成十位数来达到加密的目的。棋盘密码的密钥是一个5X5的棋盘,将26个英文字母放置在里面,其中字母i和j被放在同一个方格中,如下表所示:

  在给定了字母排列结果的基础上,每一个字母都会对应一个数字αβ,其中α是该字母所在行的标号,β是该字母所在列的标号。通过设计的棋盘就可以对英文消息进行加密,如u对应的是22,f对应的是34

3.摩斯密码

  摩斯密码是类似于信号的含义。如果我们在海边,看到远离海滩的水面有一亮一亮的灯光,我们不妨仔细辨识一下。假如我们看到灯光是按照 “短亮 暗 短亮 暗 短亮 暗 长亮 暗 长亮 暗 长亮 暗 短亮 暗 短亮 暗短亮”这个规律来显示的话,那么它就意味是求救信号,SOS。知道为什么吗?对了。“短亮 暗 短亮 暗 短亮 暗”代表信号S,“长亮 暗 长亮 暗长亮 暗”则代表信号O。根据信号规律,得出结论就是SOS!
摩斯密码表:
A . _ M _ _ Y _ . _ _
B _ . . . N _ . Z _ _ . .
C _ . _ . O _ _ _ 1 . _ _ _ _
D _ . . P . _ _ . 2 . . _ _ _
E . Q _ _ . _ 3 . . . _ _
F . . _ . R . _ . 4 . . . . _
G _ _ . S . . . 5 . . . . .
H . . . . T _ 6 _ . . . .
I . . U . . _ 7 _ _ . . .
J . _ _ _ V . . . _ 8 _ _ _ . .
K _ . _ W . _ _ 9 _ _ _ _ .
L . _ . . X _ . . _ 0 _ _ _ _ _

4.playfair

它依据一个5*5的正方形组成的密码表来编写,密码表里排列有25个字母。如果一种语言字母超过25个,可以去掉使用频率最少的一个。如,法语一般去掉w或k,德语则是把i和j合起来当成一个字母看待。英语中z使用最少,可以去掉它。
第一步是编制密码表。在这个5*5的密码表中,共有5行5列字母。第一列(或第一行)是密钥,其余按照字母顺序。密钥是一个单词或词组,若有重复字母,可将后面重复的字母去掉。当然也要把使用频率最少的字母去掉。如:密钥是Live and learn,去掉后则为liveandr。如果密钥过长可占用第二列或行。
如密钥crazy dog,可编制成

C D F M T
R O H N U
A G I ( J ) P V
Z B K Q W
Y E L S X

整理明文:
第二步整理明文。将明文每两个字母组成一对。如果成对后有两个相同字母紧挨或最后一个字母是单个的,就插入一个字母X(或者Q)。
如,communist,应成为co,mx,mu,ni,st。

编写密文:
最后编写密文。对明文加密规则如下:
1 若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2 右端的字母。其中第一列被看做是最后一列的右方。如,按照前表,ct对应dc
2 若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2 下方的字母。其中第一行被看做是最后一行的下方。
3 若p1 p2不在同一行,不在同一列,则c1 c2是由p1 p2确定的矩形的其他两角的字母(至于横向替换还是纵向替换要事先约好,或自行尝试)。如,按照前表,wh对应ku或uk。
如,依照上表,明文where there is life,there is hope.
可先整理为:WH ER ET HE RE IS LI FE TH ER EI SH OP EX
然后密文为:KU YO XD OL OY PL FK DL FU YO LG LN NG LY
将密文变成大写,然后几个字母一组排列。
如5个一组就是KUYOX DOLOY PLFKD LFUYO LGLNN GLY

Playfair解密算法首先将密钥填写在一个5*5的矩阵中(去Q留Z),矩阵中其它未用到的字母按顺序填在矩阵剩余位置中,根据替换矩阵由密文得到明文。
对密文解密规则如下:
1 若c1 c2在同一行,对应明文p1 p2分别是紧靠c1 c2 左端的字母。其中最后一列被看做是第一列的左方。
2 若c1 c2在同一列,对应明文p1 p2分别是紧靠c1 c2 上方的字母。其中最后一行被看做是第一行的上方。
3 若c1 c2不在同一行,不在同一列,则p1 p2是由c1 c2确定的矩形的其他两角的字母。
其实就是反其道而行之。

5.单表替换

  将26个英文字母分别替换为对应另一个字母,通信双方均持有一张表,记录着每个字母对应的替换字母,如a-i,b-p,c-t......

  一个人在只有纸和笔的情况下也可以通过穷举法在短时间内破解,这里就不做过多概述了。

6.多表替换

  本人比较熟悉的多表替换技术就是维吉尼亚密码了,此外还有希尔密码,这里就介绍维吉尼亚密码吧。

  

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

  维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:TO BE OR NOT TO BE THAT IS THE QUESTION

  当选定RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,依此类推,得出对应关系如下:

密钥:RELAT IONSR ELATI ONSRE LATIO NSREL

明文:TOBEO RNOTT OBETH ATIST HEQUE STION

密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

此外还有很多古典密码没有介绍到,这里本人只是列举了心中比较典型几种,不足之处还请多多见谅哈~

原文地址:https://www.cnblogs.com/RNGorgeous/p/8810271.html

时间: 2024-11-10 16:22:21

古典密码简介的相关文章

密码学基础知识(三)古典密码

说完了前面那些,想起个事,本系列依据内容主要来自<现代密码学>马春光编著.我就是学这本书的. 好了,古典密码就是古时候的密码,哈哈,逗你玩的,shannon的保密系统的通信理论发表前的都是古典密码,会在密码学简史中介绍这位牛人的. 学习古典密码学的意义:学习设计原理和分析方法 古典密码也是,俩门派:置换和代换,顾名思义,一个是换了个原来有的,一个是换了个原来没有的.学术点讲就是前者明文和密文空间一样,后者 不一样.你要是问我啥是明文空间和密文空间啊,我就呵呵.是M 和 C.m明文的集合,c密文

古典密码(Hill加密算法)

"Hill的加密与解密" Hill加密是另一种多字母代替密码,与多表代替密码不同的是,Hill密码要求将明文分成同等规模的若干个分组(最后一个分组涉及到填充),每一个分组被整体的加密代换,即希尔密码属于分组加密.Hill密码的算法思想是:将一个分组中的d个连续的明文字母通过线性变换转换为d个密文字母.这种变换由d个线性方程决定,其中每个字母被分配一个数值(0,1,...,25).解密只需要做一次逆变换就可以了,密钥就是变换矩阵本身. 设明文为一维矩阵m,密文为一维矩阵c,密钥用k矩阵表

古典密码

古典密码是对字母间相互代替或相互换位来进行加密.分代替密码和换位密码两种. 代替指将明文中的字符用其它字符代替,分单表代替和多表代替.代替方案称为秘钥. 单表代替密码的安全性不高,一个原因是一个明文字母只由一个密文字母代替.可以利用频率分析来破译. 多表代换密码,即构造多个密文字母表,在密钥的控制下用以一系列代换表依次对明文消息的字母序列进行代换. Playfair密码,用密钥控制生成矩阵,然后每两个字符为单位进行代换.若相邻字符相同要插入一个特殊的字符隔开,若最终字符数为奇数也要填充一个特殊的

【转载】古典密码

题目:密文内容如下{79 67 85 123 67 70 84 69 76 88 79 85 89 68 69 67 84 78 71 65 72 79 72 82 78 70 73 69 78 77 125 73 79 84 65}请对其进行解密提示:1.加解密方法就在谜面中         2.利用key值的固定结构 答案:CTF{COULDYOUEXCHANGETHEINFORMATION}分析:将Ascii码转换为字母,得到OCU{CFTELXOUYDECTNGAHOHRNFIENM}I

1.密码学概念及古典密码

一.前言 信息安全面临的威胁无处不在,多为人为威胁,也就是对信息的人为攻击,人为攻击可分为被动攻击和主动攻击. 被动攻击:即为窃听,分为两类:一类是消息内容获取:另一类是业务流分析,如获取消息的格式,长度及位置等敏感信息.该攻击因为对消息没有做出变动,难以检测,所以被动攻击重点在于预防而不是检测. 主动攻击:为对数据流的改动或产生假的数据流,分为三类:①中断,对系统可用性进行攻击,如破坏管理系统等:②篡改,对系统的完整性攻击,如修改传送的消息内容等:③伪造,对系统真实性攻击,如插入伪造的消息.

古典密码-单表密码体制

如果明文中不同的位置的同一明文字母在密文中对应的密文字母相同,则称其为单表密码体制. 代表性的单表密码: 1.移位或加法密码 2.乘数或乘法密码 3.仿射密码 4.密钥短语密码 下面分别举一个例子: 1.加法密码算法: P=C=K=Zm   (Zm∈{0,1,...,m-1}) Ek(x)=x+k(mod m)=y∈C Dk(y)=y-k(mod m)=x∈P 当k=3时,该密码算法就是凯撒密码. E3(1)=1+3(mod 26)=4   1代表A,4代表D,所以就把明文A加密成D D3(4)

古典密码-多表密码体制

如果明文中不同的位置的同一明文字母在密文中对应的密文字母不同,则称为多表密码体制. 代表性的多表密码: 1.Vigenere密码 2.Beaufort密码 3.running-key密码 4.Vernam密码 5.Hill密码 例子: 1.Vigenere密码加密: 设明文   m=m1m2...mn 密钥      k = k1k2...kn 则密文   c=Ek(m)=c1c2...cn 其中      ci=(mi+ki)(mod 26),(i=1,2,...,n) Vigenere密码解

密码学补充学习简记之古典密码

1 密码体制 2 代替密码 2.1 代替密码的定义和分类 2.2 代替密码的构造 1.构造单表代替密码的关键是构造一张明密代替表. 2.代替表构造方法:密码字法.洗牌法.仿射法.广义仿射法. 1.多表代替密码的构造可分为底表的构造和密钥序列的构造. 2.底表必须为拉丁方阵. 3.密钥的构造方法:主观密钥序列(一本书).客观密钥序列.伪随机密钥序列. 3 移位密码 3.1 移位密码的定义和分类 3.2 移位密码的构造 移位密码的构造可归结为n元置换的构造,置换的构造与代替表的构造类似. 4 乘积密

信息安全-1:python之playfair密码算法详解[原创]

转发注明出处: http://www.cnblogs.com/0zcl/p/6105825.html 一.基本概念 古典密码是基于字符替换的密码.加密技术有:Caesar(恺撒)密码.Vigenere(维吉尼尔)密码.Playfair密码.Hill密码-- 明文:未经过加密的信息:密文:加密后的信息 加密解密的过程:如下图 二.Caesar密码 这里我先简单讲下恺撒密码,咸觉挺简单的,后面再主要讲Playfair算法原理与编程. 基本原理: 在开拓罗马帝国的时候,恺撒担心信使会阅读他送给士兵的命