单表置换加密与凯撒码加密

 

一.单表置换密码
    单表置换密码也是一种传统的代替密码算法,在算法中维护着一个置换表,这个置换表记录了明文和密文的对照关系。当没有发生加密(即没有发生置换)之前,其置换表如 1-1-4所示。

表1-1-4

    在单表置换算法中,密钥是由一组英文字符和空格组成的,称之为密钥词组,例如当输入密钥词组:I LOVE MY COUNTRY后,对应的置换表如表 1-1-5所示。

表1-1-5

    在表1-1-5中 ILOVEMYCUNTR 是密钥词组 LOVE MY COUNTRY 略去前面已出现过的字符O和Y依次写下的。

后面ABD……WXZ则是密钥词组中未出现的字母按照英文字母表顺序排列成的,密钥词组可作为密码的标志,记住这个密钥词组就能掌握字母加密置换的全过程。
    这样对于明文:data security has evolved rapidly,按照表1-1-5的置换关系,就可以得到密文:VIKI JEOPHUKX CIJ EQDRQEV HIFUVRX。

 

 

二.Kaiser(恺撒)密码
    Kaiser密码是传统的代替加密法,当没有发生加密(即没有发生移位)之前,其置换表如 1-1-1所示。

表1-1-1

    加密时每一个字母向前推移k位,例如k=5,置换表如1-1-2所示。

表1-1-2

单表置换加密与凯撒码加密_第1张图片

 

    于是对明文:data security has evolved rapidly
    可以得到密文:IFYF XJHZWNYD MFX JATQAJI WFUNIQD
    若令26个字母分别对应整数 0 ~ 25,如表 1-1-3所示。

表1-1-3

单表置换加密与凯撒码加密_第2张图片

 

    则Kaiser加密变换实际上是
        c = (m + k) mod 26
    其中m是明文对应的数据,c是与明文对应的密文数据,k是加密用的参数,也称为密钥。
    很容易得到相应的Kaiser解密变换是:
        m = D(c) = (c – k) mod 26
    例如明文:data security 对应的数据序列:
        3  0  19  0  18  4  2  20  17  8  19  24
    k = 5 时得到密文序列:
        8  5  24  5  23  9  7  25  22  13  24  3
    对应的密文为:
        I  F  Y  F  X  J  H  Z  W  N  Y  D

你可能感兴趣的:(c,算法,加密,Security,解密)