凯撒密码---最简单的加密方式之一

“恺撒密码”据传是古罗马恺撒大帝用来保护重要军情的加密系统。

它是一种置换密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。

假如有这样一条指令:
明文(小写):ji xiao jing
用恺撒密码加密后就成为:
密文(大写):ML ALDR MLQJ

如果这份指令被敌方截获,也将不会泄密,因为字面上看不出任何意义。
这种加密方法还可以依据移位的不同产生新的变化,如将每个字母左19位,就产生这样一个明密对照表:

明文:a b c d e f g h i j k l m n o p q r s t u v w x y z
密文:T U V W X Y Z A B C D E F G H I J K L M N O P Q R S

很明显,这种密码的密度是很低的,只需简单地统计字频就可以破译。
于是人们在单一恺撒密码的基础上扩展出多表密码,称为“维吉尼亚”密码。它是由16世纪法国亨利三世王朝的布莱瑟·维吉尼亚发明的,其特点是将26个恺撒密表合成一个,见下表:
   A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:
TO BE OR NOT TO BE THAT IS THE QUESTION
当选定RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,依此类推,得出对应关系如下:

密钥:RELAT IONSR ELATI ONSRE LATIO NSREL
明文:TOBEO RNOTT OBETH ATIST HEQUE STION
密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

历史上以维吉尼亚密表为基础又演变出很多种加密方法,其基本元素无非是密表与密钥,并一直沿用到二战以后的初级电子密码机上。

凯撒密码---最简单的加密方式之一相关推荐

  1. 历史著名密码(凯撒密码、简单替换密码、Enigma)

    凯撒密码 公元前100多年凯撒发明的一种密码,简单来说是平移密码,也就是将字母位置向后移动一定位数. 如原文是ABCDEFG,密钥为3,加密后就是DEFGHIJ. 以密钥的数字向后平移了三位,如果密钥 ...

  2. 密码学学习笔记(一)——凯撒密码及简单替换密码

    文章目录 1. 凯撒密码 1.1 加解密方式 1.1.1 加密 1.1.2 解密 1.2 暴力破解 2. 简单替换密码 2.1 加解密方式 2.1.1 加密 2.1.2 解密 2.2 频率分析法破解 ...

  3. 使用凯撒密码对字符串进行加密解密

    实验题目:字符串加密 键盘输入一个原始字符串作为明文,然后使用加密方法加密,再对加密字符串进行解密.样例如下图,加密方法自定,完成其功能并测试. public class S5_1 {public s ...

  4. 凯撒密码(Caesar)加密解密算法Python实现

    在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一 ...

  5. 凯撒密码(Caesar)加密解密算法C/C++实现

    任成风 2018年5月20日星期日 博客首发地址:个人博客网站 http://fairycity.wang,内容以个人博客为主,修正后的博文见个人博客,请点击访问. 本文的框架: 摘要和关键字: 1. ...

  6. 凯撒密码的自动化破解方法(适用于英文文本)

    凯撒密码的自动化破解方法(适用于英文文本) 凯撒密码 凯撒加密是有记载的最古老的加密方法.原始的凯撒密码没有密钥,加密方式很原始,就是通过将字母表循环右移三位进行加密:a被D替代,b被E替代,-,x被 ...

  7. Python密码学入门:凯撒密码

    1 什么是密码学 自古以来,间谍.士兵.黑客.海盗.商人等人,大多依靠密码学来确保他们的秘密不会人尽皆知.密码学是一门使用秘密编码的学科.想要明白密码长什么样,看一看下面两段文本. nyr N.vNw ...

  8. 凯撒密码加密算法python_Python密码学入门:凯撒密码

    1 什么是密码学 自古以来,间谍.士兵.黑客.海盗.商人等人,大多依靠密码学来确保他们的秘密不会人尽皆知.密码学是一门使用秘密编码的学科.想要明白密码长什么样,看一看下面两段文本. nyr N.vNw ...

  9. 凯撒密码c语言小写字母,凯撒密码c(c语言编程凯撒密码)

    凯撒密码c(c语言编程凯撒密码) 2020-05-15 13:09:51 共10个回答 #include#includeintmain(){charsave[10][30];inta,b,i,j;sc ...

最新文章

  1. centos 7 安装tomcat
  2. 你最喜欢的“程序员”卡通是什么?
  3. 【错误记录】Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. | 仅做参考 | 没有解决实际问题 )
  4. (第六场)Singing Contest 【模拟】
  5. CONVERT_DATE_WITH_THRESHOLD
  6. BZOJ5358: [Lydsy1805月赛]口算训练
  7. C++调用MATLAB函数
  8. 10.03今日暂时停更博客
  9. zabbix 3.0快速安装简介(centos 6)
  10. 基于IAR for RH850的瑞萨RH850 FCL库用法介绍(二)
  11. Linux操作系统搭建本地源
  12. esp8266智能开关灯制作教程
  13. linux 进程死循环,排查程序死循环,死锁的方法 ——pstack
  14. ucenter php7.0版,UCenter1.5.0UCenter Home1.5Discuz! 7.0 集成安装包
  15. creator pvr etc
  16. python笔记2—day2
  17. 2021年中国白酒市场现状分析,产量持续下降,利润持续增长,市场集中度提升「图」
  18. JAVA ImageIO图片处理后变色
  19. canvas 制作简易涂鸦画板(教程)
  20. linux服务器修改字体,Linux  字体修改

热门文章

  1. 关于华擎J3455安装虚拟机PVE和ESXI还有作为纯物理黑群晖的一些事宜
  2. iview表格内容居中
  3. python 圆形检测_python下用OpenCV的圆形检测
  4. 浅谈游戏数据分析---留存篇一-留存折损
  5. 详解比较好的音视频通话SDK开发包的技术要点
  6. 关于原型设计在高等教育行业中的运营分析报告
  7. jdk8 HashMap底层原理
  8. 总结:min-height:100px; height:auto;的用法(新浪博客 )
  9. linux图像显示(五)使用freetype处理矢量字体
  10. NXP bootloader