古典密码学——移位密码 Shift Cipher

技术古典密码学——移位密码 Shift Cipher 古典密码学——移位密码 Shift Cipher移位密码的理论基础是数论中的模运算。模运算的基本定义:假设a和b均为整数,m是一正整数。若m整除a-

经典密码学——移位密码移位密码

移位密码的理论基础是数论中的模运算。

模运算的基本定义:假设A和B都是整数,M是正整数。如果m整除a-b,可以表示为ab(mod m),正整数m称为模。

模m上算术运算的定义:让表示集合{0,1,m-1},在其上定义了两个操作。加法()和乘法(x) ——运算类似于普通实数域中的加法和乘法,不同的是得到的值是取模后的余数。

因为英文中有26个字母,一般是在中定义的,所以很容易验证移位密码满足定义的密码系统1.1的条件,即存在任意x。

如果K=3,二级密码系统通常被称为凯撒密码,因为它最初是由儒勒凯撒使用的。

用移位密码加密普通英语句子,首先必须建立英语字母与模26残基的一一对应关系:例如A=1,B=2,Z=25,如下表所示:

例如,假设移位密码的密钥为K=11,明文为wewillmeetatmidnight。

首先,将明代的字母与其对应的整数对应起来,得到如下的数字串:

22 04 22 08 11 11 12 04 04 19

00 19 12 08 03 13 08 06 07 19

然后,将每个数字加到11,然后对总和取模26,得到:

07 15 07 19 22 22 23 15 15 04

11 04 23 19 14 24 19 17 18 04

最后转换成对应的字符串,即密文为HPHTWWXPPELEXTOYTRSE。

要解密密文,您只需要执行相应的逆过程。

然而,移位密码(模块26)是不安全的,可以通过穷举密钥搜索方法来破译。因为密钥空间太小,只有26种可能的情况,所有可能的密钥都可以用尽,得到我们想要的有意义的明文。

代码实现(Python 3)

def shift _ cipher _ encrypt(text :字符串,密钥=13):

符号='ABCDEFGHIJKLMNOPQRSTUVWXYZ '

已翻译=' '

对于文本:中的符号

符号=symbol.upper()

符号:中的if符号

符号索引=符号.查找(符号)

translatedIndex=(符号索引键)amp

翻译=翻译符号[翻译索引]

elif符号=='或符号==' . ':

翻译的=翻译的符号

打印(翻译)

def shift _ cipher _ decrypt(text :字符串,密钥=13):

SYMBOLS=' abcdefghijklmnopqrstuvwxyz '

已翻译=' '

对于文本:中的符号

符号=symbol.lower()

符号:中的if符号

符号索引=符号.查找(符号)

translatedIndex=(符号索引键)amp

翻译=翻译符号[翻译索引]

elif符号=='或符号==' . ':

翻译的=翻译的符号

打印(翻译)

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/132061.html

(0)

相关推荐

  • Java基础之如何理解Object源码

    技术Java基础之如何理解Object源码本篇内容主要讲解“Java基础之如何理解Object源码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java基础之如何理解Obje

    攻略 2021年10月23日
  • 如何调用api(如何调用api中间件)

    技术如何调用API小编给大家分享一下如何调用API,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!给大家分享一个微信域名封杀检测api,平时用微

    攻略 2021年12月24日
  • mysql怎么看哪个是字段类型(mysql一个类型分成几个字段)

    技术MySQL字段类型分为哪几类这篇文章主要介绍“MySQL字段类型分为哪几类”,在日常操作中,相信很多人在MySQL字段类型分为哪几类问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MyS

    攻略 2021年12月25日
  • 苏轼是哪个朝代,水调歌头苏轼什么朝代什么意思

    技术苏轼是哪个朝代,水调歌头苏轼什么朝代什么意思手足之情甚笃,“转朱阁”,此事古难全”三句,谓月光照着有离愁别恨的人,即量移汝州,现在想随风回到天上神仙住的‘琼楼玉宇’中去。同时这也就是儒家“无人不自得”的思想、胸怀坦荡

    生活 2021年10月25日
  • Oracle DBA常用脚本中转换执行shell脚本是怎样的

    技术Oracle DBA常用脚本中转换执行shell脚本是怎样的今天就跟大家聊聊有关Oracle DBA常用脚本中转换执行shell脚本是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大

    攻略 2021年11月29日
  • 孙悟空的外貌,孙悟空的外貌描写50字左右优秀

    技术孙悟空的外貌,孙悟空的外貌描写50字左右优秀孙悟空的外貌是孙悟空的外貌:1、拐子(腿的下部与脚相连处)脸、别颏腮(凹陷皱缩的脸)、雷公嘴(尖鸟嘴)、红眼睛的一个痨病魔鬼。
    2、圆眼睛,查耳朵(张开耳朵),满面毛,雷公

    生活 2021年10月25日