古典密码体制--代换和置换

一、介绍与分类

1.介绍:

古典密码时期一般认为是从古代到19世纪末,这个时期生产力水平低,加密、解密方法主要以纸、笔或简单的器械来实现,在这个时期提出和使用的密码称为古典密码。古典密码是密码学发展的初级阶段。尽管古典密码大都较简单,但由于其安全性差,目前应用很少。研究古典密码的原理,有助于理解、构造和分析近代密码。替代( substitution)和置换(permutation)是古典密码中用到的两种基本处理技巧,它们在现代密码学中也得到了广泛使用。

2.实现技术:

  • 代换  将明文字符替换成其他的字母、数字或符号
  • 置换  明文的字母相同,但被打乱了

3.分类

  • 代换密码
    • 单表代换密码
    • 多表代换密码
  • 置换密码

二、代换密码

1.单表代换密码

(1).移位密码

   Ek(P): Ci = (Pi+k) mod n, Dk(P): Pi = (Ci-k) mod n, 

   其中Ek为加密算法,Pi为明文,Ci为密文,k位密钥,n为字母的个数,Dk为解密算法。

   如果是英文字母间的代换,也可以写成以下形式:

   Ci = (Pi + k) mod 26     Pi = (Ci - k) mod 26,其中k∈[0,25]

   其中凯撒密码Ci = (Pi + 3) mod 26就是一种移位代换密码。

(2).仿射密码

   Ek(P) = (aPi + b) mod m

(3).代换密码

   指每一个字母都由另一个字母表(从明文字母到密文字母的映射)中的字母加密

   破译方法:穷举密钥法、统计分析法(利用语言规律)      

2.多表代换密码

(1).维吉尼亚密码

维吉尼亚密码由一些偏移量不同的恺撒密码组成,每一个明文字母的偏移量由一个给定的密钥决定。如明文"abcd"(密钥为plan),则明文字母a的偏移量即为p的位数15。a偏移15位后为p,p即为明文字母对应的密文字母。

Ci = (Pi + ki) mod 26

维吉尼亚密码也看作是依据于一张二维密码表,明文字母和对应的密钥字母分别为行数和列数,在表中找到相应的字母即为密文字母

举例:

明文:howareyou
密钥:mine

明文(P)HOWAREYOU
密钥(k)MINEMINEM
密文(C)TWJEDMLSG

 

破译技巧:

  • 间隔是密钥长度整数倍的对象代换结果也相同
  • 间隔是密钥长度整数倍的位置上的代换是单表代换

(2).一次一密

用随机的非重复的字符集合作为输出密文。一旦使用了变换的输入密文,就不再在任何其他消息中使用这个输入密文(因此是一次性的)。输入密文的长度等于原消息明文的长度。

以下是主要步骤.

1.按递增顺序把每个明文字母作为一个数字,A=0,B=1等等.

2.对输入明文中每一个字母做相同的处理.

3.将明文中的每个字母与密钥中的相应字母相加.

4.如果得到的和大于26,则从中减去26 (mod 26)

5.将和转化为字母,从而得到密文.

三、置换密码

置换密码是⼀种通过⼀定规则改变字符串中字符的顺序从⽽实现加密的密码算法。

与代换密码的区别:

代换密码是将明文字母用不同的密文字母代替,生成的密文中可能有明文未包含的字母,而置换密码是仅仅打乱明文字母的位置和顺序

置换密码有很多种,举例一种:将密文一行一行写在表格中,按一列一列的顺序读取,如明文:howareyouImfinethankyouandyouhaha,则密文:hfuoiawnnaedrtyehoyauonhukaiyhmoa。

HOWAREYOUIM
FINETHANKYO
UANDYOUHAHA

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SPN(Substitution-Permutation Network)是一种常用的加密算法结构,其设计目的是将输入的明文进行高强度的加密处理,从而保护数据的安全性。下面是一个简单的 SPN 设计流程: 1.明文分组:将明文按照一定的规则分成若干个固定长度的分组。 2.初始置换:对每个分组进行一次初始置换,打乱分组内各个位的排列顺序。 3.代换层:将初始置换的结果送入代换层,进行若干轮代换处理。每轮代换处理包括两个步骤: - S 盒代换:将分组中的每个位按照预定的规则进行代换,使得每个位的值都被替换成了另一个值。 - 置换:将代换结果按照一定的置换规则重新排列,打乱其原有的顺序。 4.末置换:对最后一轮代换的结果进行一次末置换,将其重新排列成最终的密文输出。 为了保证 SPN 算法的安全性,需要注意以下几点: 1.选择合适的 S 盒:S 盒的选择对于 SPN 算法的安全性至关重要,合适的 S 盒应该满足一定的置换特性和代换特性,从而能够有效地抵抗各种攻击手段。 2.增加轮数:通过增加 SPN 算法的轮数,可以增强其加密强度,降低被攻击的风险。 3.使用随机数:在 SPN 算法中,随机数的使用可以增加加密算法的难度,从而提高其安全性。 总之,SPN 算法是一种高效且安全的加密算法结构,通过合理的设计和实现,可以有效地保护数据的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值