古典密码

来源:互联网 发布:绑定独立域名有什么用 编辑:程序博客网 时间:2024/04/29 02:38

概述



一个密码体制(M,C, K, E, D)
 c=E k (m)
 m=D k (c)
 用相同的密钥 K 来加密和解密
 K 必须保密

典型的数学变换

 代替

用另一个字母代替原来的字母

单表单代替密码

移位密码

(凯撒密码为右移三位的移位密码)

加密 ci=ek(mi)=(mi+k) mod 26
解密 ciphertext c mi=dk(ci)=(ci-k) mod 26
穷举攻击:
|K|(密钥空间)太小–
对于穷举攻击(字母个数n)
复杂性:平均(n-1)/2次
复杂性:最坏(n-1)次

仿射密码

扩展的移位密码
c=am+b mod n



穷举攻击– 对于Zn, |K|=(n)n 对于Z26,|K|=312

改进:使用单表代替

多表代替密码

维吉尼亚密码

著名的恩格玛机所使用

加密消息:

INDIVIDUAL CHARACTER 

密钥: HOST

        m= I ND I  V I DU ALCH   ARAC TER

        k=HOST HOST   HOST  HOST  HOS

Ek(m)=PBVB CWVN  HZUA  HFSV  ASJ

•                 P = C = K = (Zn)m

•                 K = (k1, k2, k3,…km)

•                 eK(x1, x2,…xm) = (x1+k1,x2+k2,…,xm+km)mod 26

•                 dK(y1, y2,…ym) = (y1-k1,y2-k2,…,ym-km) mod 26

•                 注:

–                   |K| = nm

–                  Vigenere 密码能掩饰字母的频率

–                  Vigenere 密码是代替密码的集合


每个分组中对应次序的字母的集合为普通的单表代替密码

只需要找到分组长度m就可以进行破解

方法:1.kasisky检验,2.重合指数法

Kasisky检验

• 寻找密钥长度

        key: deceptivedeceptivedeceptive

plaintext: wearediscoveredsaveyourself

ciphertext:ZICVTWQNGRZGVTWAVZHCQYGL

两组重复序列之间的举例为可能值。

获得多个不同的可能值,所有可能值的最大公因数为分组长度m(或其倍数)

重合指数法

重合指数=从字符串中任选两个字符,他们相等的概率。
              ≈每个字母出现的频率的平方的和。

自然语言的重合指数≈0.065;全随机的重合指数≈0.038

猜测分组长度为m,将密文按照对应在m中的次序分为m组,若每一组的重合指数都接近于0.065,则说明很可能分组长度m猜测正确。

多名代替密码

希尔密码



一般n阶矩阵能掩盖n-1长度的字符频率


 置换

改变字母的位置
写密码用一种方式,读密码用另一种方式





参考电子工业出版社《密码学原理与实践》,仅为个人学习整理归纳...........


0 0
原创粉丝点击