安全(六种核心安全机制-加密、密钥、签名与证书)

2023-11-17

  1. 安全要解决什么问题

  2. 你都会的密码术

  3. 安全机制之对称加密

  4. 安全机制之非对称加密

  5. 安全机制之密钥交换

  6. 安全机制之消息摘要

  7. 安全机制之电子签名

  8. 安全机制之证书与PKI

一、在典型的场景中,安全主要用于解决4类需求:

1、保密(Security/Confidentiality)

希望通信中的信息对外进行保密(不想任何第三方来窥探你的信息)

例如:你是某个公司的高层领导,你有很多机密的文档。你可能放到了公司的保险箱或者家里的保险箱,只有你才有key(钥匙)才能打开看。

2、鉴别/认证(Authentication)

希望可以鉴别认证出与你通信的那个对端确实是所认为的那个对端。(例如跟你女朋友打电话,你怎么能确认和你打电话的那个人就是你女朋友)

例如:你怎么能确认打电话的就是你朋友呢?不是仿冒的人在这里。通过你女朋友的声音可以鉴别出是女朋友本人。
例如:组织上安排重庆地下工作者与上海地下工作者接头在某个地点,并出示了相关接口口号,只有口号对头才能鉴别是要接头的人。

例如:借钱的时候会写借条,写借条的技巧:用大小写,字体间隔非常小,防止篡改。

3、完整性(Integrity)

一旦某个信息产生了以后,你希望这个信息不能被谁来篡改;或者说它已经发生了篡改,你可以很方便的鉴别出它已经发生了篡改。

4、不可否认性(non-repudiation)

对于某一个信息,你可以很方便的确认这个信息是由谁产生的,并且一旦由某人产生了某个信息,将来在某一时刻他想否认都是不可以的。

例如:犯人进行签字画押;皇帝传位需要写诏书和盖龙印。

例如:电子文档签名。

二、密码术:

在日常场景中,其实你都在有意无意中利用密码术来完成特定的安全需求

1、字母加密

字母A用B代替,C用D代替,前面的一个字母用后面的一个字母替代。

2、藏头诗

诗里面藏了一些我要表达的含义。

例如:毛氏今有才人出,晓文晓理难晓伊。冬去春来秋月夜,爱却江山爱美人。

3、倒写文

例如:把书信完整的倒过来写。

4、任何规则都可以定义密码术

5、为什么不自己发明和使用新的密码术呢?

因为自己发明的密码术没有通过验证,没有黑客攻击过,很难考证它的安全强度。你有可能在密码术留下后门,将来用来盈利。

6、算法和秘钥的分离

算法公开,秘钥保密。算法公开的目的使用者的验证、专家的论证、黑客的尝试与破解。若干年后该密码术没有被黑客攻破或者专家破解,该密码术就会成为公开的算法。

三、安全机制之对称加密

1、典型的加密模型

密钥:分为加密密钥和解密密钥。

明文:没有进行加密,能够直接代表原文含义的信息。

密文:经过加密处理之后,隐藏原文含义的信息。

加密:将明文转换成密文的实施过程。

解密:将密文转换成明文的实施过程。

2、对称秘钥算法

对称的含义(Symmetric):加密端和解密端是用的同一个key

置换加密,转置换加密和乘积密码(算法的模型)

置换加密(顺序不变,原始的数据用其他数据替换,原始的字母用其他字母进行替换)

例如:

abcde  ----> klmno

转置换加密(原始数据的信息不变,是数据顺序打乱变化)

例如:

123456789  ----> 253698174

乘积密码(置换密码和转置换密码的混合使用)

例如:

abcde ----> poklm ----> mlkpo

3、DES(Data Encryption Standard)数据加密标准

每取64bit (8byte)作为加密单元,经过19次的反复置换和转置换加密。秘钥其实是56bit。

后面出现的3重DES,就是DES经过了三次转换。

4、AES(Advanced Encryption Standard)高级加密标准

运用了复杂的数学书法,内部构造还是沉积密码。它的输入是128bit,以128bit为单元加密。秘钥是可选的,可以以128bit长度加密单,也可以以192bit长度加密,也可以用256bit长度加密,比较灵活。

四、安全机制之非对称加密

非对称加密模型

加密秘钥 K 称为公钥(public),解密秘钥 K ' 称为私钥(private)

加密秘钥可以任何人知道,解密秘钥需要保密(解密者保管)。

 

数学是科学基础,基础学科研究之物,虚虚实实,先虚后实。

公开秘钥算法的最重要两大数学基础。

1、建立在分解大数的困难度

2、建立在以大素数为模来计算离散对数的困难度。

 

RSA算法(非对称加密算法)

建立在分解大数的困难度

公钥/私钥长度 至少1024bit

五、安全机制之密钥交换

1、对称加密优缺点:

高效(相对于非对称加密来说,传输速度快)

秘钥交换问题(会话秘钥实时产生且周期性变化)

不如RSA的加密安全程度高,但是当选择256bit的AES,仍然能胜任绝大多数的安全领域。

2、非对称加密优缺点:

安全性足够高

没有秘钥交换的问题

效率低,对于大数据加密很慢(加密算法复杂)

3、其他秘钥交换方式:

Diffie-Hellman 秘钥交换协议

基于以大素数为模计算离散对数的困难度

对方各自选定key,然后以一定算法交换(使得key不以明文传输)后传输给对方

双方利用对方交换来的数据和自己选定的key做交换,获得一个一致的结果,作为会话秘钥

六、安全机制之消息摘要

1、HASH与散列函数的定义与特点

HASH翻译成散列或者哈希

HASH(散列)函数(算法)的定义是:变长的输入变换成定长的输出

常见的HASH算法:MD5(128bit)、SHA1(160bit)

HASH的特点:

易变性:即便原始信息发生1bit的变化,HASH的输出将会有不可预知的巨大变化。

不可逆:通过HASH结果构造出满足的输入信息是不可能的或者及其困难的。

2、消息摘要与数字指纹

人的指纹的特点:双胞胎的指纹不同;通过指纹猜不出它的主人。

与Hash的对应关系:易变性、不可逆

数字指纹由此而来

消息摘要:摘要窥/定全体

名字真多:HASH、哈希、散列、MD、消息摘要、数字指纹

3、HASH的应用场景:放篡改

基于易变性特性

可保完整性

示例:文件下载时的MD5、消息传送时尾部额外传MD

4、HASH的应用场景:防损坏

基于易变性特性

可保完整性

示例:

CRC校验的作用和不足

MD校验消息恶劣环境传输的完整性和未受损坏

应用程序中对于核心文件/数据库读写的鲁棒性保护、防止掉电和Crash

5、HASH的应用场景:认证

基于不可逆向性

可认证对端

示例:

HTTP的Basic和Diges认证(明文传输)

PPP的PAP和CHAP认证(明文传输)

手机登录密码和隐藏MMI的设计

6、HMAC:Hash-based Message Authentication Code

遇到的问题:

直接尾部附带消息摘要的问题(篡改内容的同时篡改摘要)

直接对密码做HASH传输的认证的问题(重放攻击)

HMAC怎么解决的

HMAC就是使用Key对原始消息变换后再近些HASH

七、安全机制之电子签名

1、签名要解决什么问题:

签什么:签的内容的完整性包含

谁在签:签名人的不可否认性

2、公钥密码术的两面性:

3、HASH+公钥密码术:成就电子签名

八、安全机制之证书与PKI

1、证书的作用:公钥的存储和交换

公钥作为一个字段存储于数字证书中

证书的交换和传输即可传输/交换公钥

2、证书的作用:现代信任基石

证书只是存储和交换公钥的吗?那我不可以把公钥直接作为一个文件来存储和交换吗?

另外,我不可以篡改证书吗?我作为第三者,篡改小李发给小王的证书,把里面的公钥改成我的,以此来HACK别人发给小李的信息。

利用签名来保护数字证书本身

       人的信任关系:一个信任人的列表

       数字时代的信任关系:一个受信任者的证书列表

3、证书链和PKI

人的信任链:孔子 -> 孔子的徒弟 -> 孔子的徒弟的徒弟

数字时代的信任链:证书链

证书签名的不同点:根证书的自签名,非根证书的父签名

证书的限制:约束、用途、有效期

PKI的概念

4、基于证书的认证

基于可信任证书的认证方式可被广泛的应用在现代安全领域,比如:wifi、https

在https中,典型的Client对Server的认证和鉴别基于可信任列表

 

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

安全(六种核心安全机制-加密、密钥、签名与证书) 的相关文章

  • C++primer习题3.14 vector读写字符

    include
  • sentinel-3卫星测高学习资料整理

    在学习过程中 整理关于sentinel 3测高的学习资料 1 SAR Radar Altimeter SRAL instrument specifics https eumetsatspace atlassian net wiki spac
  • pandas中DataFrame 数据合并,连接(merge,join,concat)

    pandas作者Wes McKinney 在 PYTHON FOR DATA ANALYSIS 中对pandas的方方面面都有了一个权威简明的入门级的介绍 但在实际使用过程中 我发现书中的内容还只是冰山一角 谈到pandas数据的行更新 表
  • Ubuntu16.04如何调整屏幕分辨率至1920*1080

    1 引言 ubuntu16 04桌面版安装好后 发现屏幕分辨率调整选项里没有1920x1080这一选项 经过一番研究 可通过如下方式进行屏幕分辨率设置 以下操作均在ubuntu16 04桌面版操作 不要用远程连接操作 否则xrandr命令会
  • 华为OD机试(2021-04)题目一

    题目 一个 0 1000 的整数 拆解为一个 本身 或多个连续自然数的和 按照自然数的个数从少到多输出各个方案 input solution 方案内的自然数按照从小到大排列 public static void main String ar
  • 循环“停止”的三种特殊语句

    对于一个初学者来说 循环的控制无疑是一个难点和重点 但是在有些时候循环是不需要执行完的 或者这个循环的这一次是不用执行的 那么我们如何来实现这些功能呢 下面通过一个例子来加以说明 1 break语句跳出就近的一层循环 while i lt
  • 渗透相关问题(3)

    1 sql注入绕过的方法 注释符号绕过 大小写绕过 内联注释绕过 双写关键字绕过 特殊编码绕过 宽字节绕过 2 WAF常用的类型 硬件设备类型 软件产品类型 基于云的WAF 3 sql注入漏洞防御方法 代码层面 对输入进行严格的转义和过滤
  • JavaSE学习总结:异常处理

    Java异常处理 1 什么是异常 2 异常的处理机制的原理 过程 3 异常的体系结构 1 java lang Throwable 2 java lang Error 3 java lang Exception 4 异常的处理机制 1 抛 2
  • 以太坊区块链技术开发岗位面试题集锦,附答案

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 超过100道以太坊区块链开发技术岗位的面试题 附参考答案 面试题目涵盖 以太坊的基本概念 Geth客户端使用 智能合约基本概念 Solidity开发语言 去中心化 应用DA
  • 目标检测中的IOU和CIOU原理讲解以及应用(附测试代码))

    上期讲解了目标检测中的三种数据增强的方法 这期我们讲讲目标检测中用来评估对象检测算法的IOU和CIOU的原理应用以及代码实现 交并比IOU 交并比IOU Interp over union 在目标检测任务中 我们用框框来定位对象 如下图定位
  • Linux文件/proc/net/tcp

    导语 proc net tcp文件提供了tcp的连接信息 是由net ipv4 tcp ipv4 c中的tcp4 seq show 实现信息打印的 本文内容来源于linux官方文档proc net tcp txt 官方文档解释 proc n
  • 输入框不能为空格

    需求 在表单中 输入的内容要去除两端空格 技术栈 vue elementui 最简单的做法 element ui 中自带的表单必填项校验输入空格时 依然能逃过验证 required true还是可以通过 需要再 在v model 加上 tr
  • 3.Jmeter学习_线程组(Thread Group)

    xxxx
  • VS2022安装qt插件

    1 安装Qt软件 Qt下载网址 5 14之后的需要手动编译 官方不提供exe文件 2 配置环境变量 3 安装插件 vs2022 qt vsaddin插件已经更新 可以下载安装 链接 https download qt io developm
  • 【正点原子STM32连载】第十七章 通用定时器中断实验 摘自【正点原子】APM32F407最小系统板使用指南

    1 实验平台 正点原子stm32f103战舰开发板V4 2 平台购买地址 https detail tmall com item htm id 609294757420 3 全套实验源码 手册 视频下载地址 http www openedv
  • python爬虫学习笔记-jQuery

    jQuery介绍 jQuery是什么 jQuery是一个快速 简洁的JavaScript框架 jQuery设计的宗旨是 write Less Do More 即倡导写更少的代码 做更多的事情 它封装JavaScript常用的功能代码 提供一
  • C# 集合

    数组是一种指定长度和数据类型的对象 在实际应用中有局限性 集合正是为这种局限性而生的 集合的长度能根据需要更改 也允许存放任何数据类型的值 集合简介 集合和数组比较类似 都用于存放一组值 但集合中提供了特定的方法直接操作集合中的数据 并提供
  • Java接口详解

    接口 接口的概念 在现实生活中 接口的例子比比皆是 比如 笔记本上的USB口 电源插座等 电脑的USB口上 可以插 U盘 鼠标 键盘等所有符合USB协议的设备 电源插座插孔上 可以插 电脑 电视机 电饭煲等所有符合规范的设备 通过上述例子可
  • OneNote复制为默认字体大小(只复制文字,不复制原有字体格式)

    当我们从word中复制一段文字到onenote中 onenote会自动带上原有字体的格式 非常不方便 下面是只复制文字的方法 1 随便按 ctrl c 复制一段文字 2 到onenote里按下 ctrl v 粘贴 选择右下角的框 3 在弹出
  • 使用XMind解决问题?只需4个简单步骤!

    我们每天都在解决问题并做出决定 从我应该穿什么到学校的小问题到如何找工作或上大学等等的问题 我们面临的问题可能或大或小 或简单或复杂 无论它是什么 我们都必须解决它 解决问题和决策是商业和生活的重要技能 我们生活中非常重要的一部分是找到解决

随机推荐

  • UE4_积分相同排名显示问题

    找了一下ue4 rank 函数相关 没找到合适的 自己简单写了个 解决积分相同时名次要一样 之后顺位排序 中国式排名 蓝图实现 c 原理一样 1 2 3 4 5
  • 编译 QT4.6.3 出现 derefIfNotNull 未定义 解决

    使用高版本的编译工具编译QT4 6 3 出现错误 derefIfNotNull 未定义 找到 RefPtr h文件 在WFT 的 public 里面增加 两个函数的定义 void derefIfNotNull T ptr if LIKELY
  • CS从头配置电脑清单(软件篇)

    CS从头配置电脑清单 软件篇 假设你电脑丢了 重新搞了一台 怎么从头配置 迅速可以进行高效产出 假设你是Linux ubuntu系统 安装zoom 安装slack 进行其他设备的信息发送 自己给自己发 项目交流 安装截图软件 推荐flame
  • 【Java】QueryWrapper方法解释

    继承自 AbstractWrapper 自身的内部属性 entity 也用于生成 where 条件 及 LambdaQueryWrapper 可以通过 new QueryWrapper lambda 方法获取 queryWrapper lt
  • 加解密

    目录 一 加密基础知识 1 加密函数 密钥 反函数 2 加密 解密 3 对称加密 4 非对称加密 公钥私钥 二 非对称加密 1 大素数分解问题类 1 RSA 2 Rabin 3 Pollard s rho 素数分解算法 2 离散对数问题类
  • 论文笔记-深度估计(5)Unsupervised Monocular Depth Estimation with Left-Right Consistency

    ECCV2016 Unsupervised Monocular Depth Estimation with Left Right Consistency 本文采用无监督学习 没有ground truth 的方法来估计深度 基本思路是匹配好左
  • Graph Neural Network-Based Anomaly Detection in Multivariate Time Series 代码配置及解析

    可以在GPU上跑通的代码 含数据集 我已经放到了以下链接 链接 https pan baidu com s 1gM4KTbRNHzfbGEGgvEjXAw 提取码 e7wu 在服务器上跑 先创建一个虚拟环境 conda create n G
  • 算法——B树,B-树,B+树,B*树全面解析笔记

    算法 B树 B 树 B 树 B 树全面解析笔记 https www cnblogs com lianzhilei p 11250589 html http blog codinglabs org articles theory of mys
  • 【QT】混合UI设计

    虽然利用Designer和代码的设计方式都可以开发GUI 但是毫无疑问的是最有效的开发方式是利用两者进行混合开发 下面这个实验例子来自 QT5 9 C 开发指南 我做了小部分修改 最终效果是这样 图标导入 这次我们要开发的是一个有工具栏 菜
  • 哈希表——哈希表的概念,哈希表的实现(闭散列,开散列)详细解析

    作者 努力学习的少年 个人简介 双非大二 一个正在自学c 和linux操作系统 写博客是总结知识 方便复习 目标 进大厂 如果你觉得文章可以的话 麻烦你给我点个赞和关注 感谢你的关注 种一颗树最好是10年前 其次是现在 目录 哈希概念 哈希
  • 实战怎么用u盘重装系统

    当电脑系统出现故障问题无法进系统的情况下 我们可以通过制作u盘启动盘进pe系统进行修复或者重装系统解决 不过很多网友不知道怎么用u盘重装系统 今天小编就给大家分享一个简单易操作的u盘重装系统教程 具体的步骤如下 1 先在一台可用的电脑上下载
  • nodejs服务后台持续运行三种方法

    网上看到的 用了第二种方式OK的 自己备份保存下 一 利用 forever forever是一个nodejs守护进程 完全由命令行操控 forever会监控nodejs服务 并在服务挂掉后进行重启 1 安装 forever npm inst
  • 微信小程序之内嵌网页(webview)

    微信小程序提供了新的开放能力 它终于开放了在小程序中内嵌HTML页面的功能 从微信小程序基础库1 6 4开始 我们就可以在小程序内放置一个
  • 蓝桥杯大赛— —每日一题(6、走方格)

    走方格 题目描述 在平面上有一些二维的点阵 这些点的编号就像二维数组的编号一样 从上到下依次为第 1 至第 n 行 从左到右依次为第 1 至第 m 列 每一个点可以用行号和列号来表示 现在有个人站在第 1 行第 1 列 要走到第 n 行第
  • Redis可以代替MySQL作为数据库吗

    Redis可以代替MySQL作为数据库吗 当使用Redis作为数据库时 以下是一些基本的代码示例 1 连接到Redis服务器 2 存储和获取数据 3 列表操作 4 有序集合操作 6 键过期和删除 Redis作为数据库时 下面是一些更复杂的代
  • 如何基于G6进行双树流转绘制?

    1 背景 业务背景 CRM系统随着各业务条线对线索精细化分配的诉求逐渐增加 各个条线的流向规则会越来越复杂 各个条线甚至整个CRM的线索流转规则急需一种树形的可视化的图来表达 技术背景 在开发之前考虑了三种方案 原生canvas fabri
  • STM32 同个定时器 采用2个通道输入捕获

    工作中遇到 做点总结 之前看CSDN 找到一种写法 就是 把中断中的 CAPTURE VAL 的值 变成 date1 date2 去保存 但是我的写法不成功 一位大佬帮忙改成功了 总结我的写法错误之处 主函数区别 我把date1 清0 放后
  • java longlong_java Long long

    在Java中执行如下的代码 long number 26012402244 编译的时候会出现一个错误 提示 过大的整数 32322355744 如果在Eclipse中书写上面的代码 提示的是 The literal 26012402244
  • DrawerLayout与FragmentTabHost结合模仿oschina主界面

    1 DrawerLayout实现侧滑菜单 drawerlayout是官方出的侧滑菜单控件 使用起来非常方便 将它当作LinearLayout一样的布局控件 完成布局xml文件
  • 安全(六种核心安全机制-加密、密钥、签名与证书)

    安全要解决什么问题 你都会的密码术 安全机制之对称加密 安全机制之非对称加密 安全机制之密钥交换 安全机制之消息摘要 安全机制之电子签名 安全机制之证书与PKI 一 在典型的场景中 安全主要用于解决4类需求 1 保密 Security Co