周期置换密码
参考教材:《现代密码学教程》P47 3.1.2
加密解密过程
周期置换密码是将明文p串按固定长度m分组.然后对每组中的子串按1,2…,m的某个置换重新排列位置从而得到密文,其中密钥σ包含分组长度信息。解密时同样对密文c按长度m分组,并按σ的逆置换σ-1把每组子串重新排列位置从而得到明文p。
以例3.3为例
和上次提及的列置换密码类似
代码
import re
class timeCode:
__key=[] # 密钥
__apaMsg="" # 明文
__secMsg="" #密文
__lenKey=0 #密钥长度 周期值
def getKey(self,s): # 密钥形成函数
Key={
}
antiKey={
}
s=re.split(r'[()]',s) #以()分界
while '' in s: # 消除''
s.remove('')
temp=[]
for i in range(len(s)):
for j in range(len(s[i])-1):