| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 2022-3-2 UOOC深大 计算机安全导论 一 对称加密方式(置换、替代、多表;维吉尼亚) 【T.O.CTF】 -> 正文阅读 |
|
[网络协议]2022-3-2 UOOC深大 计算机安全导论 一 对称加密方式(置换、替代、多表;维吉尼亚) 【T.O.CTF】 |
0、前言我于这个学期选修了深圳大学开展的计算机安全导论,权作为网安方面小小的导引,促进自己学习。同时也修读了深圳大学的 现代密码学 ,这两门慕课上完都会更新随想。麻烦大家多多指教。 我们首先了解的是密码学基础,因为本人主要学习re,因此学习密码学倒是门新的挑战,废话不多说了,下边来写内容: 1、密码学基础信息,作为人类文明重要的黏合剂,在几千年的文明史里,不断地扮演更重要的作用。在现代社会,掌握了信息就掌握了机会,就掌握了财富。于是人们就会想方设法将重要的信息加密、混淆,以期信息劫持者无法理解,而信息真正的接受者却能看懂信息,于是加密方和解密方的竞争开始了。 凯撒密码应该是最早应用于战争信息传递加密的加密算法(加密器),凯撒密码(英语:Caesar cipher),或称凯撒加密、凯撒变换、变换加密,是一种最简单且最广为人知的加密技术。凯撒密码是一种“替换”的加密技术,需要加密的“原信息”中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换为加密好的信息。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。 我们明确一下密码学中的名词,以方便我们学习(方便我打少几个字):
我们根据密钥对加密方法进行分类,而上边介绍的凯撒密码,因为信息发送和接受方都使用一个密钥(这里的密钥是3,因为发送和接受方都知道凯撒密码的加解密规则,这个规则就是密钥),因此被称为对称加密。 相对的,发收双方使用不同密钥的,则是非对称加密。 对称加密被称为常规加密、私钥加密、单钥加密等,而非对称加密被称为公钥加密。 我们刚刚初步感受过私钥加密的操作,我们现在来明确一下对称加密的模型,具体为: ? ?其中,加密算法可以公开(不公开也会被监测到),但是私钥不可以,当然,大名鼎鼎如凯撒密码,你如果直接套用后移3位这一密钥会被瞬间破解,你也通过更改密钥的大小以增加破解难度,但是,值得提醒的是,凯撒密码型加密算法安全度极低,只能骗骗萌新小白。OK,你现在一定在想,我怎么样在凯撒型的基础上再增加难度,保护我的信息? 我们先来了解密码学里最基础最基础的加密手段: 1.1、替换密码:如凯撒密码,就是将明文里的每一个元素/字母,如果是二进制则是0和1(bit)都映射给另外一个元素,这个映射规则或者映射就是密码,如(A->D和3)
1.2、换位密码:将明文中每一个元素都重新排列,并没有改变明文中的任何信息,只是次序混乱,导致词不达意无法理解。1和2相比较时,可以发现转位式密码只是改变明文中单元的位置,而单元本身没有转变;相反,替换式密码只是转换单元,但密文中单元的位置没有改变。 1.3、乘积密码(Product Cipher)通过结合两个或更多置换的方式制造比单独的加密方式更安全的密码以抵抗密码分析。乘积密码往往结合的是简单的置换/替换算法。因为1、2两种加密方方都有其缺陷:替代密码的明文只要内容量较大,就有可能遭到频度分析法的攻击,而置换密码的缺点是明文量不能大,量大则会导致置换方式易被发现。 因此,乘积密码是最优解。在学习乘积密码前,很有必要枚举替换与置换两种密码各一种,帮助大家理解为何乘积密码有很大的优势。 2、古典密码算法2.1、替换密码?还是从凯撒密码说起。我们上文阐述了凯撒密码的具体操作,现在我们利用上面提到的密码学名词符号,列出凯撒密码的加密解密公式:
上边说过,我们可以通过改变偏移量来实现凯撒密码变式,我们叫它“维吉尼亚密码”。 维吉尼亚密码可以实现每一个元素的偏移量都不同,我们将偏移量计做K,则每个元素都偏移量K1、K2.......Kn构成“K表”,K表可以循环使用,即,例如明文有8个字母,而k表只有7位,则第八个字母需要偏移时,读取K1进行偏移。 我们把这种使用K表进行偏移的凯撒密码变式称为多表替换。 下面的K=(K1、K2........Kn) ?加解密公式稍加更改。 下边是具体构建维吉尼亚密码:【重要!!!!!】
2.2换位(置换)密码我们介绍栅栏密码 加密原理:把要加密的信息交替排成两行,再将下边的行连接到上边行的尾部。 绕晕了?上图吧。 组成栅栏密码的明文一般不超30个字母。 还有行变换密码: ? 提高安全性的方法: 1、分多行增加加密强度 2、对加密后的密文再进行其他加密操作(乘积)。 是吧,最后都回到了乘积密码。了解完这些,终于可以好好讲分组密码啦,我们下节再聊! 17:27.3.2.22 ? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 7:46:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |