• 古典密码-单表密码体制


    如果明文中不同的位置的同一明文字母在密文中对应的密文字母相同,则称其为单表密码体制。

    代表性的单表密码:

    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)=4-3(mod 26)=1  所以把密文D,解密成明文A

    这种算法容易受到唯密文攻击,由算法可知,密钥的可能性个数为m,如果是英语字母表,只有26个字母,那么只要尝试25种(不包括0,因为m=0就等于是明文了)密钥,就能破解该算法。

    2.乘法密码算法

    P=C=Zm

    K={a ∈Zm | (a, m)=1}

    Ea(x)=ax (mod m) =y ∈C

    Da (y)=a-1y (mod m) =x ∈P

    (a-1是a对于m的乘法逆元)

    当m=26,

    P=C=Z26

    K={a ∈Z26 | (a, 26)=1},

    Ea(x)=ax (mod 26) =y ∈C

    Da (y)=a-1y (mod 26) =x ∈P

    (a-1是a对于26的乘法逆元)

    当a=9时,

    逆元a-1=3

    E9(x)=9x (mod 26)=y ∈C

    D9(y)=3y (mod 26)=x ∈P

    加密过程:字符B,对应的X=1 y=E9(x)=9*1 (mod 26)=9 替换为字符J

    解密过程:字符J,对应y=9 x=D9(x)=9*3 (mod 26)=1 还原为字符B

    对于乘数密码,当且仅当a与26互素时,加密变换才是一对一映射的。

    因此a的选择只有11种:3,5,7,9,11,15,17,19,21,23,25,可能的密钥只有11种!

    3.仿射密码算法:

    P=C=Zm

    K={(a,b)∈Zm×Zm|(a,m)=1}

    E(a,b) (x)=ax + b (mod m)

    D(a,b) (y)=a-1(y-b)(mod m)

    当a=1时,变为加法密码

    当b=0时,变为乘法密码

    所以,加法密码和乘法密码是仿射密码的特例。

    设(a,b)=(7,3)

    7-1=15

    若加密明文:hot,首先转换字母h,o,t成为数字7,14,19

    4.密钥短语密码算法:

    一种以单词为密钥的换字表

    ATMOSPHERE为密钥

    去掉重复的字母E

    ATMOSPHER

    放在字母表的某个位置

    KLNQUVWXYZATMOSPHERBCDFGIJ

    ABCDEFGHIJKLMNOPQRSTUVWXYZ原来字母表

    如果明文为APPLE,那么密文为KQQBS

    如果明文字母与代替的密文字母毫无关联,那么整个换字表就是密钥,这时密钥空间为26!,用穷举法来破译几乎是不可能的。

  • 相关阅读:
    Python从入门到精通之First!
    如果你不懂计算机语言,那么就请你不要说你是学计算机的!!好丢人。。。
    shell脚本-编程前奏-小工具之grep(文本处理)
    实战之授权站点漏洞挖掘-git信息泄漏
    实战之授权站点漏洞挖掘-CVE-2015-2808
    实战之授权站点漏洞挖掘-HTTP.sys远程代码执行
    实战之授权站点漏洞挖掘-CVE-1999-0554
    实战之授权站点漏洞挖掘-CORS
    实战之授权站点漏洞挖掘-越权
    实战之授权站点漏洞挖掘-url重定向
  • 原文地址:https://www.cnblogs.com/13jhzeng/p/5507104.html
Copyright © 2020-2023  润新知