2022-3-2 UOOC 计算机安全导论 一 对称加密方式(置换、替代、多表;维吉尼亚) 【T.O.CTF】

本文主要是介绍2022-3-2 UOOC 计算机安全导论 一 对称加密方式(置换、替代、多表;维吉尼亚) 【T.O.CTF】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0、前言

我于这个学期选修了深圳大学开展的计算机安全导论,权作为网安方面小小的导引,促进自己学习。同时也修读了深圳大学的 现代密码学 ,这两门慕课上完都会更新随想。麻烦大家多多指教。

我们首先了解的是密码学基础,因为本人主要学习re,因此学习密码学倒是门新的挑战,废话不多说了,下边来写内容:

1、密码学基础

信息,作为人类文明重要的黏合剂,在几千年的文明史里,不断地扮演更重要的作用。在现代社会,掌握了信息就掌握了机会,就掌握了财富。于是人们就会想方设法将重要的信息加密、混淆,以期信息劫持者无法理解,而信息真正的接受者却能看懂信息,于是加密方和解密方的竞争开始了。

凯撒密码应该是最早应用于战争信息传递加密的加密算法(加密器),凯撒密码(英语:Caesar cipher),或称凯撒加密凯撒变换变换加密,是一种最简单且最广为人知的加密技术。凯撒密码是一种“替换”的加密技术,需要加密的“原信息”中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换为加密好的信息。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。

我们明确一下密码学中的名词,以方便我们学习(方便我打少几个字):

1、明文:指未加密的,可以正常阅读,表达信息发出者明确意志的信息。

2、密文:指经过各种加密后,信息劫持者无法直接阅读、得知发出者明确意志的文字。

3、密钥:发出方和接收方使用的,用于解密密文的秘密信息

我们根据密钥对加密方法进行分类,而上边介绍的凯撒密码,因为信息发送和接受方都使用一个密钥(这里的密钥是3,因为发送和接受方都知道凯撒密码的加解密规则,这个规则就是密钥),因此被称为对称加密。

相对的,发收双方使用不同密钥的,则是非对称加密。

对称加密被称为常规加密、私钥加密、单钥加密等,而非对称加密被称为公钥加密。

我们刚刚初步感受过私钥加密的操作,我们现在来明确一下对称加密的模型,具体为:

 其中,加密算法可以公开(不公开也会被监测到),但是私钥不可以,当然,大名鼎鼎如凯撒密码,你如果直接套用后移3位这一密钥会被瞬间破解,你也通过更改密钥的大小以增加破解难度,但是,值得提醒的是,凯撒密码型加密算法安全度极低,只能骗骗萌新小白。OK,你现在一定在想,我怎么样在凯撒型的基础上再增加难度,保护我的信息?

我们先来了解密码学里最基础最基础的加密手段:

1.1、替换密码:如凯撒密码,就是将明文里的每一个元素/字母,如果是二进制则是0和1(bit)都映射给另外一个元素,这个映射规则或者映射就是密码,如(A->D和3)

维基百科里的表述是:

替换式密码,是密码学中按规律将文字加密的手段。

替换式密码中可以用不同字母数为一单元,例如每一个或两个字母为一单元,然后再作加密。密文接收者解密时需用原加密方式解码才可取得原文本。

由于拼音文字中字的组成为有限的字母,以英语为例只有26个字母,组成可能的单元数较少,因此使用替换式密码相对较为容易,而且亦可使用简单机械进行加密;

相反,非拼音文字如中文则因单元数非常大难以使用一般加密方式,必需建立密码本,然后逐字替换。更何况某些非拼音文字中字字皆由不同大小的字根来组字(如藏文、日文、韩文),较难转换,因此使用替换式密码的示例比较少。

1.2、换位密码:将明文中每一个元素都重新排列,并没有改变明文中的任何信息,只是次序混乱,导致词不达意无法理解。

1和2相比较时,可以发现转位式密码只是改变明文中单元的位置,而单元本身没有转变;相反,替换式密码只是转换单元,但密文中单元的位置没有改变。

1.3、乘积密码(Product Cipher)通过结合两个或更多置换的方式制造比单独的加密方式更安全的密码以抵抗密码分析。乘积密码往往结合的是简单的置换/替换算法。

因为1、2两种加密方方都有其缺陷:替代密码的明文只要内容量较大,就有可能遭到频度分析法的攻击,而置换密码的缺点是明文量不能大,量大则会导致置换方式易被发现。

因此,乘积密码是最优解。在学习乘积密码前,很有必要枚举替换与置换两种密码各一种,帮助大家理解为何乘积密码有很大的优势。

2、古典密码算法

2.1、替换密码

 还是从凯撒密码说起。我们上文阐述了凯撒密码的具体操作,现在我们利用上面提到的密码学名词符号,列出凯撒密码的加密解密公式:

加密::C=E(3,m)=m+3(mode 26) 0<=m<=25;
解密::M=D(3,C)=C-3(mode 26) 0<=C<=25;

上边说过,我们可以通过改变偏移量来实现凯撒密码变式,我们叫它“维吉尼亚密码”。

维吉尼亚密码可以实现每一个元素的偏移量都不同,我们将偏移量计做K,则每个元素都偏移量K1、K2.......Kn构成“K表”,K表可以循环使用,即,例如明文有8个字母,而k表只有7位,则第八个字母需要偏移时,读取K1进行偏移。 我们把这种使用K表进行偏移的凯撒密码变式称为多表替换。

下面的K=(K1、K2........Kn)

 加解密公式稍加更改。

下边是具体构建维吉尼亚密码:【重要!!!!!】

维吉尼亚密码是在凯撒密码基础上产生的一种加密方法,它将凯撒密码的全部25种位移排序为一张表,与原字母序列共同组成26行及26列的字母表。另外,维吉尼亚密码必须有一个密钥,这个密钥由字母组成,最少一个,最多可与明文字母数量相等。维吉尼亚密码加密方法示例如下:

明文:I've got it.
密钥:ok

密文:W'fs qcd wd.

首先,密钥长度需要与明文长度相同,如果少于明文长度,则重复拼接直到相同(也就是上面提到的“k表循环使用”)。本例中,明文长度为8个字母(非字母均被忽略),密钥会被程序补全为“okokokok”。现在根据如下维吉尼亚密码表格进行加密:

明文第一个字母是“I”,密钥第一个字母是“o”,在表格中找到“I”列与“o”行相交点,字母“W”就是密文第一个字母;同理,“v”列与“k”行交点字母是“F”;“e”列与“o”行交点字母是“S”……

维吉尼亚密码只对字母进行加密,不区分大小写,若文本中出现非字母字符会原样保留

如果输入多行文本,每行是单独加密的。

值得注意的是:

维吉尼亚密码的偏移时从0「A」开始的!!!!

2.2换位(置换)密码

我们介绍栅栏密码

加密原理:把要加密的信息交替排成两行,再将下边的行连接到上边行的尾部。

绕晕了?上图吧。

组成栅栏密码的明文一般不超30个字母。

还有行变换密码:

提高安全性的方法:

1、分多行增加加密强度

2、对加密后的密文再进行其他加密操作(乘积)。

是吧,最后都回到了乘积密码。了解完这些,终于可以好好讲分组密码啦,我们下节再聊!

17:27.3.2.22

这篇关于2022-3-2 UOOC 计算机安全导论 一 对称加密方式(置换、替代、多表;维吉尼亚) 【T.O.CTF】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/169601

相关文章

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

客户案例:安全海外中继助力知名家电企业化解海外通邮困境

1、客户背景 广东格兰仕集团有限公司(以下简称“格兰仕”),成立于1978年,是中国家电行业的领军企业之一。作为全球最大的微波炉生产基地,格兰仕拥有多项国际领先的家电制造技术,连续多年位列中国家电出口前列。格兰仕不仅注重业务的全球拓展,更重视业务流程的高效与顺畅,以确保在国际舞台上的竞争力。 2、需求痛点 随着格兰仕全球化战略的深入实施,其海外业务快速增长,电子邮件成为了关键的沟通工具。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

【即时通讯】轮询方式实现

技术栈 LayUI、jQuery实现前端效果。django4.2、django-ninja实现后端接口。 代码仓 - 后端 代码仓 - 前端 实现功能 首次访问页面并发送消息时需要设置昵称发送内容为空时要提示用户不能发送空消息前端定时获取消息,然后展示在页面上。 效果展示 首次发送需要设置昵称 发送消息与消息展示 提示用户不能发送空消息 后端接口 发送消息 DB = []@ro

脏页的标记方式详解

脏页的标记方式 一、引言 在数据库系统中,脏页是指那些被修改过但还未写入磁盘的数据页。为了有效地管理这些脏页并确保数据的一致性,数据库需要对脏页进行标记。了解脏页的标记方式对于理解数据库的内部工作机制和优化性能至关重要。 二、脏页产生的过程 当数据库中的数据被修改时,这些修改首先会在内存中的缓冲池(Buffer Pool)中进行。例如,执行一条 UPDATE 语句修改了某一行数据,对应的缓

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟