传统加密技术总结

2023-11-11

密码编码学与网络安全讨论两大领域

  • 密码算法和协议
    又可以分为4个主要的领域:
    • 对称加密(Symmetric encryption):用于加密任意大小的数据块或数据流的内容(消息、文件、加密密钥和口令)
    • 非对称加密(Asymmetric encryption):用于加密小的数据块(加密密钥、数字签名中使用的Hash函数值)
    • 数据完整性算法(Data integrity algorithms):用于保护数据块的内容免于被修改
    • 认证协议(Authentication protocols):用于认证实体的真实性
  • 网络和Internet安全
    阻止、防止、检测和纠正信息传输中出现的安全违规行为的措施

计算机安全

1.定义
NIST的《计算机安全手册》对计算机安全的定义为:
对于一个自动化的信息系统,采取保密措施确保信息系统资源(包括硬件、软件、固体、信息/数据和通信)的完整性、可用性和保密性

2.计算机安全的关键目标
保密性(Confidentiality)

  • 数据保密性(Data confidentiality):确保隐私或者秘密信息不向非授权者泄露,也不被非授权者所使用
  • 隐私性(Privacy):确保个人能够控制或确定与其自身相关的哪些信息是可以被收集、被保存的、这些信息可以由谁来公开以及向谁公开

完整性(Integrity)

  • 数据完整性(Data integrity):确保信息和程序只能以特定和授权的方式进行改变
  • 系统完整性(System integrity):确保系统以一种正常的方式来执行预定的功能,免于有意或无意的非授权操作

可用性(Availability):确保系统能工作迅速,对授权用户不能拒绝服务

这三个目标形成了CIA三元组
在这里插入图片描述
其他概念:真实性(Authenticity)可追溯性(Accountability)

OSI安全架构

主要关注安全攻击安全机制安全服务

1.安全攻击

  • 被动攻击(Passive attacks):对传输进行窃听和监测,不涉及对数据的更改,目的是获取传输的信息。处理被动攻击的重点是预防,不是检测。
    包括信息内容的泄露(Disclosure of message content)、流量分析(Traffic analysis)
  • 主动攻击(Active attack):对数据流进行修改或伪造数据流,难以绝对地预防,但容易检测,重点在于检测并从破坏或造成的延迟中恢复过来。
    包括伪装(Masquerading)、重播(Replay)、消息修改(Modification of messages)、拒绝服务(Denial of service)

2.安全服务
X.800将服务分为5类共14个特定服务。

  • 认证(Authentication)
  • 访问控制(Access control)
  • 数据保密性(Data confidentiality)
  • 数据完整性(Data integrity)
  • 不可否认性(Non-repudiation)

3.安全机制(X.800)
特定安全机制、普遍的安全机制
X.800还区分可逆和不可逆加密机制。
可逆加密机制只是一种加密算法,数据可以加密和解密。
不可逆加密机制包括Hash算法和消息认证码,用于数字签名和消息认证。

网络安全模型

在这里插入图片描述


一、密码系统

1.传统密码的安全使用要满足两个要求:

  • 加密算法必须足够强
  • 发送者和接收者必须在某种安全的形式下获得密钥并且必须保证密钥安全

2.密码编码学系统具有以下3个独立的特征:

  • 转换明文为密文的运算类型
    所有的加密算法都基于代替和置换
    代替是将明文中的每个元素映射成另一个元素
    置换是将明文中的元素重新排列

    上述运算的基本要求是不允许有信息丢失(即所有的运算是可逆的)。大多数密码体制,也称为乘积密码系统,都使用了多层代替和置换。
  • 所用的密钥数
    发收双方使用相同的密钥对称密码,单密钥密码,秘密钥密码或传统密码
    发收双方使用不同的密钥非对称密码,双钥或公钥密码
  • 处理明文的方法
    分组密码每次处理输入的一组元素,相应地输出一组元素
    流密码则是连续地处理输入元素,每次输出一个元素

二、对称密码模型

对称加密,也称传统加密单钥加密,是一种加解密使用相同密钥的密码体制,是20世纪70年代公钥密码产生之前唯一的加密类型。
五个基本成分为:明文M、密文C、密钥K、加密算法E、解密算法D。

1.传统密码的简化模型:在这里插入图片描述
2.对称密码体制的模型:
在这里插入图片描述

3.对称密码分为两类分组密码流密码
分组密码也称为块密码,它将信息分成一块(组),每次操作(如加密和解密)是针对一组而言。
流密码也称序列密码,它每次加密(或者解密)一位或者一个字节。

4.采用对称密码,首要的安全问题是密钥的保密性

5.攻击传统密码体制的两种通用方法:

  • 密码分析学:密码分析学攻击依赖算法的性质、明文的一般特征或某些明密文对,这种形式的攻击企图利用算法的特征来推导出特定的明文或使用的密钥。
  • 穷举攻击:攻击者对一条密文尝试所有可能的密钥直到把它转化为可读的有意义的明文。平均而言,获得成功至少需要尝试所有可能密钥的一半

6.对加密信息的攻击类型
在这里插入图片描述
7.安全性

  • 无条件安全:一次一密
  • 计算上安全
    破译密码的代价超出密文信息的价值
    破译密码的时间超出密文信息的有效生命期

三、代替技术(Substitution Ciphers)

代替技术是将明文字母替换成其他字母、数字或符号的方法。如果把明文看成是二进制序列的话,那么代替就是用密文位串来代替明文位串。

**1.**Caesar密码
原理:对字母表中的每个字母,用它之后的第三个字母来代替(字母表是循环的,即认为紧随Z后的是字母A)。字母编号对照表如下:在这里插入图片描述
加密算法可以表示为:C=E(3,p) = (p+3)mod26,其中的位移量3
位移量可以是任意整数k,这样得到一般的Caesar算法:
加密算法是:C=E(k,p)=(p+k)mod26
解密算法是:p=D(k,C)=(C-k)mod26

(这里K的取值范围从1到25)
例:
明文: pa r t y
密文:SDUWB
若已知Caesar密码,只要测试所有的25种可能的秘钥即可破译。

2. 单表代换密码(Monoalphabetic Cipher)
采用简单重新排列明文字母表来作为密码表且每个相同的明文字母总是被同一个密文字母所替换的被称作单表替换密码。
密钥空间十分巨大,可以抵御穷举攻击,但是可以根据语言出现的频率和特性破解

3.Playfair密码
是最著名的多字母代替密码,它把明文中的双字母音节作为一个单元并将其转换成密文的“双字母音节”。Playfair算法基于一个由密钥词构成的5*5字母矩阵。仍然完好地保留了明文语言的大部分结构特征。

填充矩阵的方法是:

  • 首先将密钥词去掉重复字母从左到右,从上至下填在矩阵格子中
  • 再将剩余的字母按字母表的顺序从左至右、从上至下填在矩阵剩下的格子里。字母I和J暂且当做一个字母

对明文按如下规则一次加密两个字母:

  • 如果该字母对的两个字母是相同的,那么在它们之间加一个填充字母,比如x。例如先把ballon变成ba lx lo on这样的4个字母对。
  • 落在矩阵同一行的明文字母对中的字母,由其右边的字母来代替,每行中最右边的一个字母就用该列中最左边的第一个字母来代替。
  • 落在矩阵同一列的明文字母对中的字母,由其下面的字母来代替,每行中最下面的一个字母就用该列中最上面的第一个字母来代替。
  • 其他的每组明文字母对中的字母按如下方式代替:该字母所在行为密文所在行,另一字母所在列为密文所在列。 (其实说白了就是看成对角线)

例:密钥为MONARCHY

hs——BP
ea——IM / JM
balloon——ba lx lo on——IB SU PM NA
ar——RM
mu——CM

4.Hill 密码
是一种多字母代替密码
Hill 密码要求首先将明文分成同等规模的若干个分组(最后一个分组不足时需要填充),每一个分组被整体加密变换,即 Hill 密码属于分组加密
Hill 密码算法将每一个分组中的 d 个连续的明文字母通过线性变换(与密钥矩阵相乘),转换为 d个密文字母。
在这里插入图片描述

写成矩阵形式:
在这里插入图片描述
例:用 Hill 密码加密明文 “Pay more money”,d=3,密钥是
在这里插入图片描述
求对应的密文。

解:明文对应字母表为 15 0 24 12 14 17 4 12 14 13 4 24
在这里插入图片描述
故对应的密文为:RRLMWBKASPDH。
Hill密码完全隐藏了单字母频率特性。

5.多表代替加密(Polyalphabetic Ciphers)
多表代换密码是以两个以上代换表依次对明文消息的字母进行代换的加密方法。

Vigenère密码是多表密码中最知名和最简单的密码,选择某一关键词并重复(与明文等长)而得到密钥,用数字0-25代替字母A-Z。
例:明文:ATTACKATDAWN,关键词为LEMON
明文:ATTACKATDAWN
密钥:LEMONLEMONLE。
A在字母表中对应0,L在字母表中对应11
(0+11)mod26=11,所以加密后为L,
以此类推得到密文:LXFOPVEFRNHR
C=(P+K)mod26
P=(C-K)mod26

每个明文字母对应对个密文字母,每个密文字母使用唯一的密钥字母,字母出现的概率信息被隐藏了,但并非所有的都隐藏了。

Vigenère Autokey System
例:关键词:deceptive,明文:wearediscoveredsaveyourself
明文:w e a r e d i s c o v e r e d s a v e y o u r s e l f
密钥:d e c e p t i v e w e a r e d i s c o v e r e d s a v
密文:Z I C VTWQNG K Z E I I G A S XST S L V V W L A
易受密码分析攻击

Vernam密码
密钥与明文等长,使用周期很大的循环密钥,如果有足够的密文,使用已知或可能的明文序列,或者联合使用二者,可被破解。
在这里插入图片描述

6. 一次一密
每一条新消息都需要一个与其等长的新密钥,它产生的随机输出与明文没有任何统计关系,密文不包括明文的任何信息,无法攻击。
一次一密的安全性完全取决于密钥的随机性。
一次一密存在两个基本难点: 产生大规模随机密钥、密钥的分配和保护
实际上很少使用它,主要用于安全性要求很高的低带宽信道。
一次一密是唯一的具有完善保密的密码体制。

四、置换技术(Transposition cipher)

改变明文出现的相对位置。

栅栏技术(Rail Fence Cipher)
按照对角线的顺序写出明文, 按行的顺序读出作为密文,
例: i’m growing like a seed, rains been falling on me. (栅栏为2)
栅栏1:i g o i g i e s e r i s e n a l n o m
栅栏2: m r w n l k a e d a n b e f l i g n e
密文:igoigieserisenalnommrwnlkaedanbefligne

Row Transposition Cipher
更复杂的方案:把消息一行一行地写成矩阵块,然后根据密钥的顺序按列读出。
在这里插入图片描述
密文:TTNAAPTMTSUOAODWCOIXKNLYPETZ

单纯的置换密码因为有和明文相同的字母频率特征而易被破解,密码分析可以直接从将密文排列成矩阵入手,再来处理列的位置。双字母音节和三字母音节分析办法可以派上用场。若根据置换算法,对明文进行多次置换,就不容易破解了,这就是安全性更高的多步置换密码。

五、转轮机

转轮机是代替计算机加密解密的硬件设备。采用一系列转轮,每一个都是一个代替表,转轮可以依次旋转加密每个字母, 在现代密码之前,转轮密码是最广泛使用的复杂的密码。转轮机的意义在于它曾经给数据加密标准(DES)指明了方向。

六、隐写术(Steganography)

隐写术不是加密技术
需要通过额外的开销隐藏相对较少的信息
其他技术:字符标记、不可见墨水、针刺、打字机的色带校正

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

传统加密技术总结 的相关文章

  • PyCharm入门教程——自动导入(下)

    查看 PyCharm入门教程 自动导入 上 PyCharm 是一种Python IDE 其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具 此外 该IDE提供了一些高级功能 以用于Django框架下的专业Web开发 PyC
  • 面试过程中应注意的问题与禁忌

    面试过程中应注意的问题与禁忌 一 面试中应注意的问题 应试者要想在面试答辩中获得成功 必须注意以下几个问题 一 淡化面试的成败意识 一位面试者在面试前自认为各方面都比别人优秀 因此 他认为自己可以高枕无忧了 谁知主考官在面试中出其不意 提了
  • layui日期多选

    先引入layui的css和js html部分 div class layui inline div
  • Eclipse快捷键的使用

    ctrl 2 L这个快捷键可自动补全代码 极大提升编码效率 注 ctrl和2同时按完以后释放 再快速按L ctrl 1提示快捷键 能快速的实现光标所在行的问题 并给出一些修改方案 按键盘上的ALT 方向键 或者 就能上下移动
  • 【路径规划】基于前向动态规划算法在地形上找到最佳路径(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 汽车必须尽可能靠近目标坐标 旅行时间应尽可
  • Pycharm连接远端服务器配置【保姆级教程】

    提示 需要提前安装Pycharm专业版 可以用破解版或者学生认证一年试用期 网上有教程 文章目录 前言 软硬件环境 一 配置SSH连接服务器 1 立马遇到bug 没有出现以下问题可以跳过 2 配置本地与服务器文件同步 3 同步代码到服务器上
  • React基础教程(二):React的基本使用

    React基础教程 二 React的基本使用 1 HelloReact 1 1 引入react基础依赖包 注意点 必须要在 之前引入
  • 利用unordered_map特性求交集

    unordered map 是关联容器 含有带唯一键的键 值 pair 搜索 插入和元素移除拥有平均常数时间复杂度 元素在内部不以任何特定顺序排序 而是组织进桶中 元素放进哪个桶完全依赖于其键的哈希 这允许对单独元素的快速访问 因为一旦计算

随机推荐

  • 什么是Three.js?(一)

    Three js是一款运行在浏览器中的 3D 引擎 基于WebGL的API的封装 你可以用它来创造你所需要的一系列3D动画场景 如最近比较火的在线试衣间 医疗设备可视化等等 如果你第一次接触Three js 那么就跟着我们的文章一起学习就好
  • VSCode手记

    设置为中文 如何将VSCode设置成中文语言环境 vscode设置中文 z975821109的博客 CSDN博客 快捷键 跳转声明代码 F12 撤销 Ctrl Z 重做 Ctrl Y 查找 Ctrl F 删除当前行 Ctrl Shift K
  • Vue3 reactive丢失响应式问题

    问题描述 使用 reactive 定义的对象 重新赋值后失去了响应式 改变值视图不会发生变化 测试代码
  • MIPI DSI-2 协议解析

    文章目录 前言 一 DSI 2 简单介绍 1 1 DSI 层次定义 1 2 Command和Video模式 1 2 1 Command模式 1 2 2 Video 模式 1 2 3 Virtual Channel Capability 虚拟
  • 基于SSM的企业人事管理系统

    文末获取源码 一 项目摘要 开发语言 Java Java开发工具 JDK1 8 后端框架 SSM 前端 采用HTML和Vue相结合开发 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA E
  • 【Nacos在derby模式下密码忘记】使用derby的ij工具重置密码/修改密码

    问题描述 nacos部署未用mysql 直接运行 使用了默认的derby数据库 这时候不一小心修改的密码给忘记了 无法登录 当时是部署在centos上的一个演示环境 没有采用mysql数据库 如果生产上 建议使用mysql 解决方案 1 下
  • 02-zookeeper分布式锁案例

    1 Zookeeper分布式案例 1 1 Zookeeper分布式锁原理 核心思想 当客户端要获取锁 则创建节点 使用完锁 则删除该节点 当我们假设根节点 下有 locks节点时 1 客户端获取锁时 在locks节点下创建临时顺序节点 2
  • 【人工智能】手掌相关信息测量【实验报告与全部代码】(QDU)

    计算机视觉技术 课程设计 指导老师 张维忠 目录 一 实验背景 二 实验任务 三 任务分配 四 实验环境 五 实验思路 六 实验内容 1 MediaPipe Hands介绍 1 1 手部检测器 1 2 手部坐标预测模型 2 裁剪手掌部分 2
  • Shell脚本for循环小实验

    目录 1 计算1 100的和 2 提示用户输入一个小于100的整数 并计算从1到该数之间所有整数的和 3 从1到100所有整数的偶数和 奇数和 4 执行脚本输入用户名 若该用户存在 输出提示该用户已存在 若该用户不存在 提示用户输入密码 建
  • android开发经典难题,Android开发问题集锦3

    问题1 java工程解析apk的apkinfo需要用到sdk build tools sdk版本号 aapt以及AXmlResourceParser jar包 在使用aapt工具的时候报错 1Cannot run program FxRhA
  • ASP.Net Core 和 Vue.js 全栈开发

    特点 采用实践方法来实现使用 ASP NET Core 5 和 Vue js 3 构建健壮应用程序的实用方法 从设置 Web 应用程序的后端开始 以干净的架构 命令查询责任分离 CQRS 中介模式和 Entity Framework Cor
  • java swing 外观框架_【GUI】一、Swing外观框架BeautyEye使用

    一 Swing外观框架BeautyEye使用 1 1 导包 1 2 使用BeautyEye L F public static void main String args EventQueue invokeLater new Runnabl
  • js自定义sort排序规则

    sort 方法通常用于对数组的元素进行排序 默认情况下是按照字符编码从小到大的顺序进行排序 例如 var arr 1 6 10 3 43 55 arr sort 排序后的结果为 1 10 3 43 55 6 以下方法是按照自定义的规则进行排
  • fastjson包:自动将字符串转换为json格式的字符串

    首先需要导入fastjson jar包 他是阿里巴巴发型的快速JSON包 目前已经捐赠给Apache 可以去官网下载 也可以在我的资源中下载 package mypackage import com alibaba fastjson JSO
  • CSS:图片不拉伸,垂直居中显示

    div class container img src div div class container div
  • Unity5.x 解析Json

    本章内容是从API接口请求Json 将其保存在本地 并且从本地读取解析 废话不多说 直接上干货 我选取的示例接口是一个查询电话号码归属地的功能 首先我们要向示例接口请求Json数据 并且将请求得到的Json数据保存到本地文件夹下 代码如下
  • 【软件测试工程师】App 应用测试方法以及测试思路

    分析三种主流的移动 App 类型 并给出和普通web测试不同的地方 给出测试的思路 并给出部分场景组合 移动端测试还是 PC 端测试 业务测试其实都属于 GUI 测试的范畴 所以基本的测试思路 比如基于页面对象封装和基于业务流程封装的思想是
  • 点击的li显示并为他增加类active,其他的li消失并去除类名,实现选项卡效果

    记得引入jquery库 ul class wrap ul
  • 一.使用qt creator 设计显示GUI

    一 安装qt creator 二 创建项目 文件 新建项目 三 使用设计 可以直接使用鼠标拖拽 四 转换为py文件 from123 py 为导出 py文件的文件名 form ui 为 qt creator创造的 ui 文件 pyuic5 o
  • 传统加密技术总结

    密码编码学与网络安全讨论两大领域 密码算法和协议 又可以分为4个主要的领域 对称加密 Symmetric encryption 用于加密任意大小的数据块或数据流的内容 消息 文件 加密密钥和口令 非对称加密 Asymmetric encry