密码学技术总结

news2025/1/25 4:47:24

前言 

本文内容主要摘抄网络规划设计师的教材和腾讯-SUMMER课堂,主要对网络安全进行简单梳理和总结

对称密码体制

密码分为私钥和公钥密码两种,而介于私钥和公钥只见密码成为混合密码。

私钥密码又称为对称密码,该体制的特点是加密和解密使用相同的密钥。消息的收发双方必须事先通过安全渠道交换密钥

优点:加解密速度快,密文紧凑,使用长密钥时难破解。

缺点:密钥分配问题,密钥管理问题,无法认证源。

 常见的对称密钥加密算法如下:DES,3DES,AES,RC4/5,IDEA

DESData Encryption Standard,数据加密标准,分组加密算法
采用移位+替换,速度快,密钥易产生。
分组长度64位,密钥长度64位,有效密钥长度56位
3DES三重DES(TDEA),使用DES对明文进行“加密-解密-加密”操作。
• 加密:K1加密→K2解密→K3加密
• 解密:K3解密→K2加密→K1解密
一般K1和K3是相同的密钥。
密钥长度112位
IDEAInternational Data Encryption Algorithm,国际数据加密算法,
分组加密算法。设计思想:混合使用来自不同代数群中的运算。
明文和密文分组都是64位,密钥长度为128位,用于PGP
AESAdvanced Encryption Standard,高级加密标准。
可以通过硬件实现,速度快,像3DES一样安全。
分组长度128位,支持128,192和256三种密钥长度
RC4/5流加密算法,用于WIFI。加密速度快,可达到DES的10倍。分组和密钥长度都可变

非对称密码体制

公钥密码又称为非对称加密,对数据加密和解密的密钥是不同的。

优点:密钥分发方便,密钥保管量少,支持数字签名。

缺点:加密速度慢(计算量大,不适合加密大数据),数据膨胀率高

常见的非对称加密算法如下:

RSA:512位密钥,计算量极大,难破解。(基于大素数因子分解困难性)

Elgamal,ECC(椭圆曲线算法),背包算法,Rabin,DH等。(基于离散对数问题困难性)

注:数据膨胀率高代表加密完数据比原来数据量大很多,例如1T数据加密完变成3T数据量

混合密码

混合密码:发送方用对称密钥加密需要发送的消息,再用接受方的公钥加密对称密钥,然后一起发送给接收方,接收方先用自己的私钥解密得到对称密钥,然后用对称密钥解密得到明文。

国密加密算法-SM系列

《中华人民共和国密码法》密码分为核心密码、普通密码和商用密码,实行分类管理。
• 核心密码、普通密码用于保护国家秘密信息,属于国家秘密,由密码管理部门依法实行严格统一管理。
• 商用密码用于保护不属于国家秘密的信息,公民、法人可用。
国产密码算法:是指由国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法,目前已经公布的国产密码算法如下:

算法名称算法特征描述
SM1对称加密,分组长度和密钥长度都为128比特
SM2

非对称加密,用于公钥加密算法,密钥交换协议,数字签名算法

(椭圆曲线问题)

SM3杂凑算法(哈希),分组512位,输出杂凑值长度为256位
SM4对称加密,分组长度和密钥长度都为128比特
SM5标识密码算法,支持公钥加密,密钥交换,数字签名等安全功能

哈希算法Hash

HASH函数,又称为杂凑函数、散列函数,它能够将任意长度的信息转换成固定长度的哈希值(数字摘要),并且任意不同消息或文件所生成的哈希值是不一样的。
h表示hash函数,则h满足下列条件:
• (1)h的输入可以是任意长度的消息或文件M。
• (2)h的输出的长度是固定的。
• (3)给定h和M,计算h(M)是容易的。
• (4)给定h的描述,找两个不同的消息M1和M2,使得h(M1)=h(M2)是计算上不可行的。
哈希函数特性:不可逆性(单向)、无碰撞性 、雪崩效应 。

常见的Hash算法有:
• (1)MD5算法:以512位数据块为单位来处理输入,产生128位的信息摘要。常用于文件校验。
• (2)SHA算法:以512位数据块为单位来处理输入,产生160位的哈希值,具有比MD5更强的安全性。
• (3)SM3国产算法:消息分组长度为512比特,输出256位摘要。

应用场景1-文件完整性校验:

 只要文件有缺失或者增加都会导致散列值不同,就能知道目标文件是否被篡改过。

应用场景2-账号密码存储

如数据库存储密码是存储hash值而非密码,通过hash值是不可逆的,所以无法从hash值反推原始密码,但是还是可以通过彩虹表攻击(彩虹是存储了常见的hash值对应密码的一个表),通过匹配来得到原始密码。所以才有了盐+哈希的方式,原理是通过原始密码+一个很小固定值得出hash值,相比于直接使用原始密码得出hash值来说,由于hash特性雪崩效应,一点微小值都会导致整个hash值变化,彩虹表查询方式就失效了。

应用场景3-身份认证

这个场景有点像第二场景中的盐+哈希,只不过场景2是在存储中,场景3是在通信过程中,不传递明文,而是传输hash值对身份进行认证。

 数字签名

在计算机世界通过数字签名来实现同样的功能。签名方用自己的私钥进行签名,对方收到后,用签名方的公钥进行验证。数字签名是用于确认发送者身份和消息完整性的一个加密消息摘要,具有如下特点:

  1. 数字签名是可信的。
  2. 数字签名不可伪造。
  3. 数字签名不能重新使用。
  4. 签名文件是不能改变的。
  5. 数字签名不能抵赖。
  6. 接收者能够核实发送者身份。

常用的签名算法是RSA,采用发送者私钥签名,接收方收到数据后,采用发送者的公钥进行验证。可以直接对明文进行签名,由于明文文件可能很大,这种签名方案效率低。所以也可以先由明文生成Hash(比如MD5生成128位),再对Hash值进行签名,效率更高。 

数字证书

数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。

它是由权威机构——CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。

数字证书是一种权威性的电子文档,可以由权威公正的第三方机构,即CA(例如中国各地方的CA公司)中心签发的证书,也可以由企业级CA系统进行签发。

PKI体系

1、用户/终端实体:指将要向认证中心申请数字证书的客户,可以是个人,也可以是集团或团体、某政府机构等。
2、注册机构RA:负责受理用户申请证书,对申请人的合法性进行认证,并决定是批准或拒绝证书申请。注册机构并不给用户签发证书,而只是对用户进行资格审查。较小的机构,可以由CA兼任RA的工作。
3、证书颁发机构CA:负责给用户颁发、管理和撤销证书。
4、证书发布系统:负责证书发放,如可以通过用户自已或是通过目录服务。
CRL库:证书吊销列表,存放过期或者无效证书。 

数字证书应用

例如这个场景,发送方的Alice想要和接收方Bob进行通信,因为Bob提供某种服务,所以不单单是Alice可能很多人都想和Bob通信,但是这个过程中这么多人包括Alice如果才能确信自己是和真正的Bob进行通信是个问题?

所以数字证书作用就体现出来了,如果Bob有权威机构颁发的数字证书,那么Alice和其他人就会信任Bob的数字证书,然后拿取证书里面的Bob公钥进行加密,Bob收到信息后用自己私钥进行解密。

上面所述的场景最经常用的是浏览器访问某个网站如下图,浏览器会内置很多CA证书,当浏览器访问服务器时候,服务器会返回相应证书,浏览器会验证证书的合法性(涉及到证书链,下文会提到),然后验证通过了就会利用证书里面公钥加密后续通信消息,服务器会利用私钥解密通信消息。

实际上服务器和浏览器交互过程中,只在通信协商阶段会经历浏览器公钥加密,服务器私钥解密,通信协商阶段会商量对称密钥,便于后续数据通信,因为对称加密速度快,而如果数据通信用非对称加密就有前面说的加密速度慢,数据膨胀率高的问题。

证书链

准确来说,服务端所返回证书不是一个单一的证书,而是一组有序的证书,称为证书链。证书链由终端证书开始,然后是签署颁发该终端证书的中间CA证书,再然后是签署颁发前一个中间CA证书的另一个中间CA证书…中间CA证书的数量可以是0个到多个,一直链接下去,在证书链的末端,是根证书。当然这边根证书可以有也可以没有。

 浏览器就会一级一级的向上查找知道找到最终的根证书,匹配信任的根证书列表,如果匹配就信任该证书,匹配规则参考ThinkStu博客的图片:

 

参考文献:

网络规划设计师教材

腾讯SUMMER课堂

数字证书简介-CSDN博客

证书链简介_Dancen的博客-CSDN博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1094441.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件开发项目文档系列之二如何撰写项目建设方案

目录 前言1 项目概况2 需求分析3 建设目标4 建设内容4.1 建设原则4.2 设计依据4.3 总体框架4.4 建设任务4.5 技术方案 5 实施保障措施6 验收和考核指标7 投资预算7.1 资金来源7.2 预算表7.3 预算编制说明 结语 前言 建设方案或解决方案是在任何新项目或计划启动之前&#xff0…

程序员如何运营好博客平台

shigen坚持日更的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。坚持记录和分享从业两年以来的技术积累和思考,不断沉淀和成长。 不知不觉间,我发现从我的日更博客和公众号目标确定到现在,我已经坚…

数据库实验一:学生信息管理系统数据库结构搭建和表的创建

实验项目名称:学生信息管理系统数据库结构搭建和表的创建 实验目的与要求实验原理与内容1. 数据库的组织结构2. 数据库的分离和附加3. 数据库表的创建,修改和删除 实验过程与结果1. 根据学生信息管理系统创建相关的数据库2. 数据库表初步设计及实现3. 实…

【算法训练-排序算法 二】【手撕排序】快速排序、堆排序、归并排序

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【手撕排序系列】,使用【数组】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为&…

ffmpeg+安卓+yolo+RK3399部署

一次满足多项需求. 首先, 思路是, 使用ffmpeg解码本地mp4文件, 在无需任何其他改动的情况下, 就可以直接播放rtsp流, 这个是使用ffmpeg的好处. ffmpeg本身是c语言的, 所以需要编译成jni的库, https://note.youdao.com/s/6XeYftc 具体过程在这里, 用windows/macOS, Ubuntu应该都…

Python 字典

目录 1 字典介绍2 字典的创建3 字典元素的访问4 字典元素添加、修改、删除5 序列解包6 表格数据使用字典和列表存储,并实现访问7 字典核心底层原理(重要)7.1 将一个键值对放进字典的底层过程7.2 扩容7.3 根据键查找“键值对”的底层过程7.4 用法总结: 声…

【多媒体技术与实践】使用OpenCV处理图像(实验三.上)

1:图像直方图 将原彩色图像转成灰度图像,得到该灰度图像的灰度直方图,并对灰度直方图进行直方图均衡化,将原图、灰度图、直方图及均衡化后的直方图一起拼接为一张图片 import cv2 import numpy as np import matplotlib.pyp…

数据结构与算法 | 第一章:概论

本文参考网课为 数据结构与算法 1 第一章概论,主讲人 张铭 、王腾蛟 、赵海燕 、宋国杰 、邹磊 、黄群。 本文使用IDE为 Clion,开发环境 C14。 更新:2023 / 10 / 15 数据结构与算法 | 第一章:概论 数据结构概念逻辑存储运算抽象…

Java基础--阳光总在风雨后,请相信彩虹

1、今日任务 JAVA SE-韩顺平视频教程–30p以上(今天得50p以上因为是基础)计算机基础八股记忆总结刷题(两题)可以先用python 1、SSM ssm->Spring(轻量级的文本开发框架)/SpringMVC(分层的w…

【string题解 C++】翻转字符串II:区间部分翻转 | 验证回文串

翻转字符串II:区间部分翻转 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 难度:简单 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个…

【Mybatis】基于TypeHandler实现敏感数据加密

一、介绍 业务场景中经常会遇到诸如用户手机号,身份证号,银行卡号,邮箱,地址,密码等等信息,属于敏感信息,需要保存在数据库中。而很多公司会会要求对数据库中的此类数据进行加密存储。 敏感数据…

【JY】求?减隔震元件的滞回面积~

写在前文 为了求解等效阻尼比,通常我们需要求解滞回圈的面积,由于形状不是常见规整可直接套用长乘宽的形状,因此大多数人经常无从下手,或者分割分割再分割,一顿操作猛如虎,然后再得出结果。 计算方法 不论是…

私仓库Nexus

私仓库Nexus搭建 没有命令提示符tab键无效 #安装Linux命令补全工具 yum -y install bash-completion #执行bash或者reboot重启系统 bash#如果上述的命令执行了有问题可以执行功能下面的命令 yum install epel-release -y yum install bash-completion bash-completion-extras…

[资源推荐]langchain、LLM相关

之前很多次逛github或者去B站看东西或者说各种浏览资讯的情况,都会先看两眼然后收藏然后就吃灰的情况,那既然这样,不如多看几眼,看看是否真的能用得上,能用在哪,然后用几句话总结出来,分享出来&…

rsync 备份工具(附rsync+inotify 实时同步部署实例)

rsync 备份工具(附rsyncinotify 实时同步部署实例) 1、rsync概述1.1关于rsync1.2rsync 的特点1.3工作原理 2、rsync相关命令2.1基本格式和常用选项2.2启动和关闭rsync服务2.3下行同步基本格式2.4上行同步基本格式2.5免交互2.5.1指定密码文件2.5.2rsync-daemon方式2.…

推荐《Blue prison》

电视动画片《蓝色监狱》改编自金城宗幸原作、野村优介作画的同名漫画作品,于2021年7月31日宣布电视动画化的消息 [1]。该片由8Bit负责动画制作,于2022年10月9日起播出 [2],全24集。 该作评为Anime Corner 2022年年度体育动画 [24]&#xff0…

【MongoDB】MongoDB 的介绍和使用

1. 关系型与非关系型数据库 关系型数据库(RDBMS)和非关系型数据库(NoSQL)是两种不同类型的数据库管理系统。 关系型数据库是基于关系模型的数据库。它使用表(关系)来保存数据,并且通过事先定义…

雷电模拟器上使用第一个frida(一)之安装

环境:win10 64,雷电模拟器9.0.60(9),Android 9,本机Python 3.10.4,路径: python3路径 cd C:\Users\LC\AppData\Local\Programs\Python\Python310pip3路径 cd C:\Users\LC\AppData\Local\Programs\Python\P…

草莓病害图像数据集(YOLO使用,train为655张照片和val为487张照片)

前言:所有图像和标签是一一对应,没有标签缺失 写了两个程序来分别检查train文件夹的图像和val文件夹图像是否有缺失标签,如果有,会直接打印出缺失标签的图像名字。也方便以后用户自己添加自己收集的图像数据后,核对图…

NNDL:作业3:分别使用numpy和pytorch实现FNN例题

对比【numpy】和【pytorch】程序,总结并陈述。 激活函数Sigmoid用PyTorch自带函数torch.sigmoid(),观察、总结并陈述。 激活函数Sigmoid改变为Relu,观察、总结并陈述。 损失函数MSE用PyTorch自带函数 t.nn.MSELoss()替代,观察、总…