古典密码技术

article/2025/9/25 7:23:49

古典密码技术

古典密码是密码学中的其中一个类型,其大部分加密方式都是利用替换式密码或移项式密码,有时则是两者的混合。其于历史中经常使用,但在现代由于计算机的出现,使得古典密码解密已经不再困难,已经很少使用,大部分的已经不再使用了。

古典密码技术根据其基本原理大体可以分为两类:替换密码技术换位密码技术

替换密码技术

替换密码技术是基于符号替换的密码技术。
一般有单字符单表替换密码技术、单字符多表替换密码技术等。

单字符单表替换密码技术

又称单表代换加密技术,其方法是对明文中的所有字符都是用一固定映射,明密文一一对应。

1. 乘法密码技术

  • 其加密过程如下:
    设明文消息元素个数为n,密钥为k。
    密钥k在选取的时候应满足两个条件:
    (1)0<k<n
    (2)k与n互素
    设明文消息为M,消息元素为m;
    则密文消息为C,密文元素为c=m*k mod n;
  • 其解密过程如下:
    首先要得到解密密钥,就是要求得加密密钥k模n的逆元 (设为i) ;
    具体求法为 k × i mod n=1;
    然后计算 m=c × i mod n 即可得到明文消息M。
  • 举例说明如下:
    英文字母有26个,即n=26;
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
    M=m[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 };
    我们选取密钥k=5;
    现在我们对hello进行加密
    hello所对应的数组为[8,5,12,12 15];
    由于8×5 (mod 26) =40(mod)26=14;
    依次类推,可得到加密后的数组为[ 14 , 25,8,8, 23 ];
    对应的密文消息就是nyhhw
    现在我们开始对nyhhw解密
    首先要求得解密密钥 i ;
    由于5×21(mod 26)=105(mod26)=1;
    所以 i =21;
    nyhhw所对应的数组为[ 14 , 25,8,8, 23 ];
    由于14×21(mod26)=294(mod26)=8;
    依次类推,可得到解密后的数组为[8,5,12,12 15];
    对应的明文消息就是hello。
    (此段摘自百度百科)

2. 移位替换密码技术(凯撒密码)
即简单的对字母进行移位变化,也是最简单的一种替换密码,如下表,不做详解。

字母(明文)abcdefg
向右移两位cdefghi
向右移5位fghijkl

3. 密钥字密码技术
利用一个密钥字来构造替换作为密钥,先将密钥字作为首段密文,然后将之后未在字母表中出现过的字母依次写在此密钥字之后,构造出一个字母替换表。当密文为英文单词时,最多可以有26!个不同的替换表(包括恒等变换)。
如,当密钥字为cipher时:

明文字母abcdefghijkl
密文字母cipherabdfgj

4. 仿射密码技术
结合乘法密码技术和移位密码技术
它的加密函数是 e(x)=ax+b,其中
a和 m互质
m是字母的数目
解码函数是 d(x)=i*(x-b)mod m,其中 i 是 a 的乘法逆元。
当a=0时,仿射密码技术退化为移位替换密码技术。
当b=0时,仿射密码技术退化为乘法密码技术。

单字符多表替换密码技术

无容置疑的,单字符多表替换密码的安全性比单字符多表替换密码高。
经典的有这几种:

1. Vigenre密码技术(维吉尼亚密码)
维吉尼亚密码是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。

  • Vigenre密码的密钥可以重复循环使用,不过一般情况下 明文-密钥-密文一一对应
    在进行加密时,在维吉尼亚表格(如下)中找到要加密的明文、用于加密该明文的密钥(用作横纵坐标),查找其对应的密文。可见维吉尼亚密码简单易用,同时初学者通常难以破解,因而又被称为“不可破译的密码”。
    维吉尼亚表格
  • 对包括维吉尼亚密码在内的所有多表密码的破译都是以字母频率为基础的,但直接的频率分析却并不适用。例如,如果P是密文中出现次数最多的字母,则P很有可能对应E(前提是明文的语言为英语)。原因在于E是英语中使用频率最高的字母。然而,由于在维吉尼亚密码中,E可以被加密成不同的密文,因而简单的频率分析在这里并没有用。
  • 破译维吉尼亚密码的关键在于它的密钥是循环重复的。如果我们知道了密钥的长度,那密文就可以被看作是交织在一起的凯撒密码,而其中每一个都可以单独破解。使用卡西斯基试验和弗里德曼试验来得到密钥的长度。

2. Vernam(弗纳姆)密码技术
Vernam加密法也称一次一密(One-Time-Pad),用随机的非重复的字符集合作为输出密文。
其加密方法是将明文和密钥分别表示成对应的数字或者二进制形式;
再将两者的数值相加;
进行模26(此处认识是对26位字母进行加密)运算;
将得到的数字转化成字母即得到密文。
当密钥是真随机序列、密钥长度大于等于明文长度、每一密钥只是用一次时,这种密码技术是安全的。

3. Hill(希尔)密码技术
实际上,它是仿射密码技术的特例,是运用基本矩阵论原理的替换密码。
其加密方法就是将明文转化为数字矩阵,与密钥矩阵相乘,得到密文。
实例:
在这里插入图片描述
注意用作加密的矩阵(即密匙)必须是可逆的,否则就不可能解码。只有矩阵的行列式和26互质,才是可逆的。

换位密码技术

换位密码技术本质上就是一种置换密码技术,在简单的纵行换位密码中,明文以固定的宽度水平的写在一张图表纸上,密文按垂直方向读出,解密就是密文按相同的宽度垂直的写在图表纸上,然后水平的读出明文。
示例:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/dbnwBHGI.shtml

相关文章

古典密码简记

目录 概述 传统隐写 替换密码技术 换位密码技术&#xff1a; 安全性分析 概述 古典密码只是对字母进行变换&#xff0c;而现代密码算法是对比特流进行变换。 古典密码技术比较简单&#xff0c;通常 采用手工或机械操作来对明文进行加密和解密的。&#xff08;例&#xf…

常见古典密码

古典密码 文章目录 古典密码前言1.Affine(仿射加密)2.Bacon(培根加密)3.Brainfuck4.Caesar(凯撒加密)5.Fence(栅栏加密)6.Fenham(费纳姆加密)7.Morse(摩斯密码)8.Pigen(猪圈加密)9.Vigenere(维吉尼亚加密) 前言 系统的学习了一下古典密码&#xff0c;这里大概整理一下主要的加…

古典密码学

主要划分方式及其分类 按密钥方式划分&#xff1a;对称&#xff0c;非对称 按明文处理方式分&#xff1a;块密码&#xff0c;流密码 按编制原理划分&#xff1a;代换&#xff0c;置乱 对称加密算法 对称加密算法 对称加密算法&#xff08;synmetric algorithm&#xff09;&…

古典密码总结

古典密码 凯撒密码凯撒位移&#xff08;中文版&#xff09; 栅栏密码棋盘密码乘法密码仿射密码希尔密码摩斯电码猪圈密码键盘密码参考 凯撒密码 加密公式&#xff1a;密文 (明文 位移数) Mod 26 解密公式&#xff1a;明文 (密文 - 位移数) Mod 26 凯撒位移&#xff08;中…

古典密码(部分合集)

古典密码 一. 移位密码1. 简单移位密码2. 曲路密码3. 云影密码4. 栅栏密码 二. 代替密码单表代替密码1.凯撒密码2.ROT133.埃特巴什密码4.经典单表替代密码5.摩斯密码6.培根密码7.图形替换密码猪圈密码圣堂武士密码标准银河密码 8.仿射密码 多表代替密码1.棋盘密码PlayfairPolyb…

密码学:古典密码.

密码学&#xff1a;古典密码. 古典密码是密码学的一个类型&#xff0c;大部分加密方式是利用替换式密码或移项式密码&#xff0c;有时是两者的混合。古典密码在历史上普遍被使用&#xff0c;但到现代已经渐渐不常用了。一般来说&#xff0c;一种古典密码体制包含一个字母表(如…

古典密码汇总。

一、密码类型汇总 23、维吉尼亚密码&#xff08;Vigenre Cipher&#xff09; 【Vigenre Cipher】 由于频率分析法可以有效的破解单表替换密码&#xff0c;法国密码学家维吉尼亚于1586年提出一种多表替换密码&#xff0c;   即维吉尼亚密码&#xff0c;也称维热纳尔密码。维…

SourceTree的使用

SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端&#xff0c;拥有可视化界面&#xff0c;容易上手操作。同时它也是Mercurial和Subversion版本控制系统工具。支持创建、提交、clone、push、pull 和merge等操作。 二、下载安装SourceTree步骤 1、下载地址&#xf…

SourceTree使用教程图文详解

作者的其他平台&#xff1a; | CSDN&#xff1a;https://blog.csdn.net/qq_41153943 | 掘金&#xff1a;https://juejin.cn/user/651387938290686 | 知乎&#xff1a;https://www.zhihu.com/people/1024-paper-96 | GitHub&#xff1a;https://github.com/JiangXia-1024?t…

Sourcetree打开之后,闪退,问题处理

1、环境&#xff1a;win11 Sourcetree版本3.4.7 2、处理办法&#xff0c;在资源管理器地址栏输入“%LocalAppData%\Atlassian”&#xff0c;删掉“SourceTree.exe_Url_ampbpf5kvqim4xxkhaykobjynfannkxz”&#xff08;非SourceTree目录&#xff09;&#xff0c;打开正常。

Sourcetree查看某个文件提交历史记录

1、在文件状态右上角搜索要查看的文件名 2、选择查看的文件名右键 点击变更历史即可

sourcetree使用

由于在工作中负责线上代码的部署和控制&#xff0c;所以对SourceTree的使用场景和使用技巧进行了全面系统的研究和实践&#xff0c;并以经验连载的形式进行了分享。该经验主要是对这些连载经验进行整体的概述&#xff0c;以方便大家的查阅和参考。 方法/步骤 SourceTree使用的…

sourceTree打不开,启动闪退

应该还是缓存文件的问题&#xff1a; C:\Users\wangqiang\AppData\Local\Atlassian 把这个临时文件删掉&#xff1a;

sourcetree使用说明

功能全面介绍 OK,拔山涉水终于安装完毕,进入主页是长这个样子 1.主页 几个按钮作用:如图,其中过滤仓库搜索框其实就是个搜索框,可以根据仓库名字的关键字搜索出仓库,右上角的设置按钮比较简单这里就不再解释大家自行点开一下就明白了 Snip20171208_22.png 新建按钮解释 Sni…

SourceTree解决冲突

1、解决冲突的时候&#xff0c;操作已暂存文件&#xff0c;不操作未暂存文件&#xff08;开始的时候&#xff0c;这两个区域的文件是一样的&#xff0c;并且都带有感叹号提示&#xff09; 2、使用他人版本解决冲突&#xff0c;会自动将当前分支对应文档更改成他人文档内容&…

Sourcetree 打开闪退怎么处理

只需要把 C:\Users\15810\AppData\Local\Atlassian 文件下用箭头标记的删除即可

Sourcetree 闪退问题

Sourcetree&#xff0c;有时我们用着用着就用不了&#xff0c;昨天好好的&#xff0c;今天就不能打开了。我遇到这个问题也找找了好多博文看了&#xff0c;也操作。还重新安装还是重新这样。后面发现麻痹的&#xff0c;这软件的打开的权限被限制了。 找到上面的位置&#xff0c…

Git和SourceTree入门教程

转自CSDN:http://blog.csdn.net/collonn/article/details/39259227 -->本教程适用于主流的开源网站github和bitbucket,个人认为sourceTree还是比较好用的git客户端,支持windows和mac os。 -->soureceTree的最新版本可能与此教程的screenshot有些许不同,但大同小异…

SourceTree使用方法

一 、SourceTree简介 SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端&#xff0c;拥有可视化界面&#xff0c;容易上手操作。同时它也是Mercurial和Subversion版本控制系统工具。支持创建、提交、clone、push、pull 和merge等操作。 二、下载安装SourceTree步骤…

Sourcetree使用教程,拉取代码克隆、解决冲突、合并分支

目录 基础配置 基础操作 拉取远程项目 pull(拉取)、commit(提交) 、push(推送) 新建分支 合并分支 Git工作流 冲突解决 配置忽略文件 SourceTree&Git部分名词解释 其他待补充 博客链接&#xff1a;Sourcetree使用教程https://www.zjhuiwan.cn/info/20211014/422…