当前位置: 首页 > java >正文

【网工第6版】第6章 网络安全②

目录

■ 信息加密技术

▲密码学基本概念

▲经典加密技术

▲现代加密技术

▲对称密码

▲公钥密码/非对称密码

▲密码分类

▲混合密码

▲国产加密算法-SM系列

■ Hash哈希算法

▲Hash函数

▲哈希分类

▲哈希应用

■ 数字签名

▲数字签名过程

▲签名验证过程

■ 数字证书与CA

▲数字证书

▲PKI体系结构

▲证书链



■ 信息加密技术

▲密码学基本概念

信息安全的核心是密码技术,研究数据加密的科学叫作密码学(Cryptography)。

现代密码理论的一个根本性原则Kerckhoffs原则密码体制的安全性不依赖于算法的保密,而仅仅依赖于密钥的保密

不论窃听者获取了多少密文,如果密文中没有足够的信息可以确定出对应的明文,则这种密码体制是无条件安全的,或称为理论上不可破解的

在无任何限制的条件下,目前几乎所有的密码体制都不是理论上不可破解的。能否破解给定的密码,取决于使用的计算资源

▲经典加密技术

经典加密技术主要有3种:

替换加密(Substitutkm)。用一个字母替换另一个字母,例如Caesar密码(D替换a,E替换b等)。这种方法保留了明文的顺序,可根据自然语言的统计特性(例如字母出现的频率)破译。

换位加密(Transposition)。按照一定的规律重排字母的顺序。

一次性填充(One-TimePad)。把明文变为位串(例如用ASCII编码),选择一个等长的随机位串作为密钥,对二者进行按位异或得到密文。

▲现代加密技术

现代密码体制使用的基本方法仍然是替换换位,但是采用更加复杂的加密算法和简单的密钥,而且增加了对付主动攻击的手段。例如加入随机的冗余信息,以防止制造假消息;加入时间控制信息,以防止旧消息重放。

替换换位可以用简单的电路来实现。

▲对称密码

对称密码特点:加密和解密使用相同的密钥

  • 优点加解密速度快、密文紧凑、使用长密钥时的难破解
  • 缺点密钥分配问题、密钥管理问题、无法认证源

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

对称加密算法总结如下:

 真题

DES加密算法的密钥长度为56位,三重DES的密钥长度为是(44)位。

A.168 B.128 C.112 D.56


▲公钥密码/非对称密码

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

  • 优点密钥分发方便、密钥保管量少、支持数字签名
  • 缺点加密速度慢(计算量大,不适合加密大数据)、数据膨胀率高

每个实体有两个密钥:公钥公开,私钥自己保存

  • 公钥加密,私钥解密,可实现保密通信
  • 私钥加密,公钥解密,可实现数字签名

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

RSA:512位(或1024位)密钥,计算量极大,难破解。

ElgamalECC(椭圆曲线算法)、背包算法RabinDH等。

▲密码分类

▲混合密码

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

▲国产加密算法-SM系列

《中华人民共和国密码法》密码分为核心密码普通密码商用密码,实行分类管理

核心密码、普通密码用于保护国家秘密信息,属于国家秘密,由密码管理部门依法实行严格统一管理。

商用密码用于保护不属于国家秘密的信息,公民、法人可用。

国产密码算法如下:

SM2是我国自主研发的一种非对称密码算法,密钥长度为256位,包括SM2-1椭圆曲线数字签名算法、SM2-2椭圆曲线密钥交换协议和SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商数据加密等功能。与RSA算法相比,SM2算法的密码复杂度高、处理速度快、机器性能消耗更小,其性能更优更安全

SM4算法是我国自主研发的分组对称密码算法,主要用于数据加密分组长度与密钥长度均为128bit。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。

SM9用户私钥的生成过程如下:

主密钥对的生成:KGC首先生成一对主密钥,包括主公钥和主私钥;

用户标识的输入:用户将自己的标识(如邮箱、用户名等)提交给KGC

用户私钥的计算:KGC使用主私钥和用户标识,通过特定的算法(如基于椭圆曲线对运算)生成用户的私钥

■ Hash哈希算法

Hash函数

Hash函数,又称为杂凑函数散列函数,它能够将任意长度的信息转换成固定长度的哈希值(数字摘要),并且任意不同消息或文件所生成的哈希值是不一样的。

h表示hash函数,则h满足下列条件:

① h的输入可以是任意长度的消息或文件M。

② h的输出的长度是固定的。

③ 给定h和M,计算h(M)是容易的

④ 给定h的描述,找两个不同的消息M1和M2,使得h(M1)=h(M2)是计算上不可行的。

哈希函数特性:不可逆性(单向)、无碰撞性、雪崩效应。

▲哈希分类

常见的Hash算法有:

MD5算法:以512位数据块为单位来处理输入,产生128位的信息摘要。常用于文件校验。

SHA算法:以512位数据块为单位来处理输入,产生160位的哈希值,比MD5更安全。

SM3国产算法:消息分组长度为512比特,输出256位摘要。

▲哈希应用

①文件完整性校验

②账号密码存储

③用户身份认证

■ 数字签名

现实生活中,经常签名,并且按手印,主要通过独一无二的笔迹和手印来防止抵赖。在计算机世界通过数字签名来实现同样的功能。签名方用自己的私钥进行签名,对方收到后,用签名方的公钥进行验证字签名是用于确认发送者身份消息完整性的一个加密消息摘要,具有如下特点:

数字签名是可信的。

数字签名不可伪造

数字签名不能重新使用

签名文件是不能改变的。

数字签名不能抵赖

接收者能够核实发送者身份

▲数字签名过程

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

▲签名验证过程

 真题

数字签名首先需要生成消息摘要,然后发送方用自己的私钥对报文摘要进行加密,接收方用发送方的公钥验证真伪。生成消息摘要的算法为(42),对摘要进行加密的算法为(43)。

(42) A.DES B.3DES C.MD5 D.RSA

(43) A.DES B.3DES C.MD5 D.RSA 


 真题

数字签名首先需要生成消息摘要,然后发送方用自己的私钥对报文摘要进行加密,接收方用发送方的公钥验证真伪。生成消息摘要的目的是(42),对摘要进行加密的目的是(43)。

(42)A.防止窃听 B.防止抵赖 C.防止篡改D.防止重放

(43)A.防止窃听B.防止抵赖C.防止篡改D.防止重放


■ 数字证书与CA

▲数字证书

▲PKI体系结构

1、用户/终端实体:指将要向认证中心申请数字证书的客户,可以是个人,也可以是集团或团体、某政府机构等。

2、注册机构RA:负责受理用户申请证书,对申请人的合法性进行认证,并决定是批准或拒绝证书申请注册机构并不给用户签发证书而只是对用户进行资格审查。较小的机构,可以由CA兼任RA的工作。

3、证书颁发机构CA:负责给用户颁发、管理撤销证书

4、证书发布系统:负责证书发放,如可以通过用户自已或是通过目录服务。

5、CRL库:证书吊销列表,存放过期或者无效证书。

 真题

用户A和B要进行安全通信,通信过程需确认双方身份和消息不可否认。A、B通信时可使用(43)来对用户的身份进行认证;使用(44)确保消息不可否认。

(43)A.数字证书 B.消息加密 C.用户私钥D数字签名

(44)A数字证书B.消息加密C.用户私钥D.数字签名 


 真题

X.509数字证书标准推荐使用的密码算法是(43),而国密SM2数字证书采用的公钥密码算法是(44)。

(43) A.RSA B.DES C.AES D.ECC

(44) A.RSA B.DES C.AES D.ECC 


 真题

数字证书的作用是()。

A.隐藏用户私钥

B.防止用户公钥泄露

C.保障数据完整性

D绑定实体与公钥


▲证书链

如果用户数量很多,通常由多个CA,每个CA为一部分用户发行和签署证书。

如果有两个CA,X1和X2,假设用户A从CA机构X1获得了证书,用户BX2获得证书,如果两个证书发放机构X1和X2彼此间安全交换了公钥,彼此信任,那么他们的证书可以形成证书链

A通过一个证书链来获取B的公钥,证书链表示为:X1《X2》X2《B》

B也能通过相反的证书链来获取A的公开密钥:X2《X1》X1《A》

 真题

假定用户A、B分别在11和12两个CA处取得了各自的证书,下面(44)是A、B互信的必要条件。

A.A、B互换私钥

B.A、B互换公钥

C.I1、I2互换私钥

D.I1、I2互换公钥


至此,本文分享的内容就结束了。

http://www.xdnf.cn/news/3223.html

相关文章:

  • JESD204B 探究
  • VS Code技巧2:识别FreeCAD对象
  • Spring的源码Spring的上下文怎么存储
  • Electron Forge【实战】自定义菜单 -- 顶部菜单 vs 右键快捷菜单
  • 百度网盘golang实习面经
  • HTML from表单中只有一个input时,按回车键后表单自动提交(form表单的一个小坑)
  • 【C++】频繁分配和释放会产生内存碎片
  • Win下的Kafka安装配置
  • Tauri v1 与 v2 配置对比
  • 全面解析SimHash算法:原理、对比与Spring Boot实践指南
  • transformer-实现解码器Decoder
  • DIT(Diffusion In Transformer)学习笔记
  • Java继承中super的使用方法
  • SI5338-EVB Usage Guide(LVPECL、LVDS、HCSL、CMOS、SSTL、HSTL)
  • 电子病历高质量语料库构建方法与架构项目(智能数据目录篇)
  • SD - WAN 跨境网络专线部署方式介绍
  • 大数据在远程医疗中的创新应用:如何重塑医疗行业的未来
  • python + segno 生成个人二维码
  • 全球气象站点年平均降水数据(1929-2024)
  • 大连理工大学选修课——机器学习笔记(4):NBM的原理及应用
  • 大连理工大学选修课——机器学习笔记(9):线性判别式与逻辑回归
  • 使用 ossutil 上传文件到阿里云 OSS
  • 基于连接感知的实时困倦分类图神经网络
  • 【数学】角谷猜想
  • 服务器热备份,服务器热备份的方法有哪些?
  • 猿人学web端爬虫攻防大赛赛题第13题——入门级cookie
  • 完美解决react-native文件直传阿里云oss问题一
  • Android学习总结之自定义view设计模式理解
  • Redis热key大key详解
  • ESP32开发-通过ENC28J60模块实现以太网设备