密码编码与网络安全原理与实践.第二章

第二章 传统加密技术

  • 对称密码模型
  • 代替技术
  • 置换技术
  • 几种传统技术

加密模型:

  • 明文 X = [X1,X2,...XM]
  • 加密算法 E
  • 密钥 K
  • 密文 Y
  • 解密算法 D

加密过程 :Y= E(K, X)
解密 : X= D(K, Y)

  • 密码分析学:企图利用算法的特征来推导出特定的明文或使用的密钥
  • 穷举攻击:对一条密文尝试所有可能的密钥,直到把它转化为可读的有意义的明文

Caesar密码

对字母表中的每个字母,用它之后的第三个字母来代替
image

如果让每个字母等价于一个数值
image
加密算法: C = E(3,p) = (p+3) mod 26
一般形式: C = E(k,p) = (p+k) mod 26
p 为明文字母,k为位移长度 C 为密文字母

k : 1~25
解密算法: C = D(k,c) = (c-k)mod 26
其三个特征使得可以用穷举攻击:

  • 已知加密解密算法
  • 需测试的密钥只有25
  • 明文语言已知

单表代替密码

置换:所有元素的有序排列,且每个元素只出现一次 n个元素有 n!个置换

  • 密文行是26个字母的任意置换,那么就有26!或大于4 * 1026种可能的密钥
    此方法称为单表替换密码,因为每条消息用一个字母表加密(给出从明文字母到密文字母的映射)
  • 解密算法:
    根据统计单个字母概率,或组合字母概率,进行替换,找出字母映射

Playfair密码

多字母代替密码

  • 把明文中的双字母音节整个转换成为密文的双字母音节
  • Playfair 基于一个由密钥词构成的 5*5 字母矩阵
    本例中密钥词为monarchy

    填充方法:首先将密钥词按顺序填入矩阵,然后将字母表剩余字母填充进去,i/j暂时当成一个字母
    对明文加密规则:
  • 若字母对两字母相同,则在其中间+x 例如balloon --> ba lx lo on
  • 若落在矩阵同一行的字母对,右移一位
  • 同一列的字母对,下移一位
  • 其他的字母对,第一个字母所在行为密文所在行,另一个字母所在列为密文所在列。hs->BP

进步:虽然只有26个字母,但有26*26=676个字母对,分析字母对概率比较困难
破解:因为它的密文仍然完好的保留的明文语言的大部分结构特征,足够分析出规律

Hill密码

线性代数: =

  • Hill算法将m个连续的明文字母,替换成m个明文字母
    在等式里每个字母指定成为一个数值 (a=0, b=1,...,z = 25)

  • C和P是长度为3 的行向量,分别代表明文密文,K = 3*3的矩阵,加密密钥 运算摸26
  • 解密: 求k的逆应用到密文上

    优点:完全屏蔽了单字母频率特性,
    破解方法:找到一组明密文对,C P 可以根据以上式子 定义 Y = XK
    若X可逆 则得到K = X-1 Y,若不可逆,则找到另外的对应值

Vigenere密码

多表替换密码最著名的密码就是此密码

posted @ 2021-04-08 14:34  FF_FF1  阅读(211)  评论(0编辑  收藏  举报