周期置换密码

本文介绍了周期置换密码的加密解密过程,参照《现代密码学教程》中的内容,阐述了如何按照固定长度分组并应用置换来改变子串顺序,形成密文。同时,讨论了解密时如何使用逆置换恢复原文。文中还提到了周期置换密码与列置换密码的相似之处,并提供了相关代码实现。
摘要由CSDN通过智能技术生成

周期置换密码

参考教材:《现代密码学教程》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):
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值