密码学简介
这是我以前所不知道的。
密码学的基本目的是使两个在不安全信道中通信的人,通常称为Alice和Bob,以一种使他们的敌手Oscar不能明白和理解通信内容的方式进行通信。
定义:一个密码体系是满足一下条件的五元组(P,C,K,E,D)
P代表所有可能的明文组成的有限集
C代表所有可能的密文组成的有限集
K代表密钥空间,由所有可能的密钥组成的有限集
对于每一个k∈K,都存在一个加密规则ek∈E和相应的解密规则dk∈D。并且对每对ek:P→C,dk:C→P,满足条件:对每一个明文x∈P,均有dk(ek(x))=x
移位密码
其基础是数论中的模运算
假设a和b均为整数,m为一正整数,若m整除b-a,则可将其表达成a≡b(mod m)。式a≡b(mod m)读作“a与b模m同余”,正整数m称为模数。
定义
令P=C=K=Z26,对0<=K<=25,任意的x,y∈Zm,定义
ek(x)=(x+K)mod 26
和
dk=(y-K)mod 26
凯撒密码
当K=3时,此密码叫做凯撒密码,因为他首先被儒乐 凯撒(就是那个凯撒大帝)所使用的。
他将26个字母与数字一一对应,通过移位与mod26,来进行转换。
下面我用python实现加密解密
#加密
def CaserEncode(m,k):
c=''