网络安全:密码学基本理论.

网络安全:密码学基本理论.

密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学.


目录

网络安全:密码学基本理论.

密码学基本概念:

密码安全性分析:

密码体系分析:

(1)私钥密码体系:

(2)公钥密码体系:

(3)混合密码体系:

常见密码算法:

(1)DES:

(2)IDES:

(3)AES:

(4)RSA:

(5)国产密钥算法:

Hash函数与数字签名:

(1)Hash函数:

(2)Hash算法:

(3)数字签名:

密码管理与数字证书:

(1)密码管理:

(2)数字证书:

安全协议:

(1)Diffie-Hellman 密码交换协议:

(2)SSH:


密码学基本概念:

(1)密码学的主要目:保持明文的秘密以防止攻击者获知.

(2)密码分析学则是:在不知道密钥的情况下,识别出明文的科学.

(3)明文:指需要采用密码技术进行保护的消息.

(4)密文:指用密码技术处理过明文的结果,通常称为加密消息.

(5)将明文变换成密文的过程称作加密,其逆过程,即由密文恢复出原明文的过程称作解密.

(6)加密过程所使用的一组操作运算规则称作加密算法,而解密过程所使用的一组操作运算规则称作解密算法.

(7)加密和解密算法的操作通常都是在密钥控制下进行的,分别称为加密密钥和解密密钥.


密码安全性分析:

(1)唯密文攻击:密码分析者只拥有一个或多个用同一个密钥加密的  密文,没有任何可利用的信息.

(2)已知明文攻击:密码分析者仅知道当前密钥下的一些明文及所对应的密文.

(3)选择明文攻击:密码分析者能够得到当前密钥下自己选定的明文所对应的密文.

(4)密文验证攻击:密码分析者对于任何选定的密文,能够得到该密文"是否合法" 的判断.

(5)选择密文攻击:除了挑战密文外,密码分析者能够得到任何选定的密文所对应的明文.


密码体系分析:

(1)私钥密码体系:

私有密钥体制:又叫对称密钥体制。密钥加密算法采用同一把密钥进行 加密 和 解密。

私钥密码体制的缺陷可归结为三点:密钥分配问题、密钥管理问题以及无法认证源。

私有密钥体制的优点:加密和解密速度非常快,但密钥的分发和管理比较困难。

私钥密码典型算法: DES IDEA AES


(2)公钥密码体系:

公钥密码体制:又称为非对称密码体制。其基本原理是在加密和解密的过程中使用不同的密钥处理方式.

公钥密码体制安全性方面,密码算法即使公开,由加密密钥推知解密密钥也是计算不可行的.

公钥密码体制加密技术:采用一对匹配的密钥进行加密、解密,具有两个密钥,一个是公钥一个是私钥,
公钥密码体制性质:每把密钥执行一种对数据的单向处理,每把的功能恰恰与另一把相反,一把用于加密时,则另一把就用于解密.
用公钥加密的文件只能用私钥解密,而私钥加密的文件只能用公钥解密。 公共密钥是由其主人加以公开的,而私人密钥必须保密存放。为发送一份保密报文,发送者必须使用接收者的公共密钥对数据进行加密,一旦加密,只有接收方用其私人密钥才能加以解密。 相反地,用户也能用自己私人密钥对数据加以处理.

与私钥密码体制相比较,公钥密码体制有 以下优点:
(1)密钥分发方便,能以公开方式分配加密密钥。例如,因特网中个人安全通信常将自己的公钥
公布在网页中,方便其他人用它进行安全加密。(2) 密钥保管量少。网络中的消息发送方可以共用 个公开加密密钥,从而减少密钥数量。只要接
收方的解密密钥保密,就能实现消息的安全性(3) 支持数字签名。

公钥密码体制类型: RSA 体制、 ELGamal 体制,椭圆曲线密码体制.


(3)混合密码体系:

混合密码系统:是用对称密码和公钥密码的优势相结合的方法。一般情况下,将两种不同的方式相结合的做法就称为混合.
混合密码系统中会先用快速的对称密码来对消息进行加密,这样消息就被转换为了密文,从而也就保证了消息的机密性。然后我们只要保证对称密码的密钥的机密性就可以了。这里就要轮到公钥密码出场了,我们可以用公钥密码对加密消息时使用的对称密码的密钥进行加密.


常见密码算法:

(1)DES:是分组加密算法,能够支待 64 比特的明文块加密,其密钥长度为 56 比特.

三重的 DES 叫 TDEA,其 TDEA 算法的工作机制是使用 DES 对明文进行“加密一解密一加密”操作,
即对 DES 加密后的密文进行解密再加密,而解密则相反。设EK() DK ()代表 DES 算法的加密和解
密过程, 代表 DES 算法使用的密钥, 代表明文输入, 代表密文输出,则 TDEA 的加密操作过程如下:


(2)IDES:是国际数据加密算法的简记,是一个分组加密处理绑法,其明文和密文分组都是 64 比特,密钥长度为 128 比特.

IDEA 算法能够接受 64 比特分组加密处理,同一算法既可用于加密又可用千解密,该算法的设计思想
是“混合使用来自不同代数群中的运算”。

(3)AES:是确定一个非保密的、公开的、全球免费使用的分组密码算法.

NIST 规定候选算法必须满足下面的要求:• 密码必须是没有密级的,绝不能像商业秘密那样来保护它;• 算法的全部描述必须公开披露;• 密码必须可以在世界范围内免费使用;• 密码系统支持至少 128 比特长的分组;• 密码支持的密钥长度至少为 128 192 256 比特.

(4)RSA:是非对称算法,加密算法中,公钥和私钥都可以用千加密消息,用于加密消息的密钥与用千解密消息的密钥相反.

RSA 算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。
目前, SSH , OpenPGP , S/MIME 和 SSL/TLS 都依赖千 RSA 进行加密和数字签名功能。


(5)国产密钥算法:国产密码算法是指由国 家密码研究相关机构自主研发,具有相关知识产权的商用密码算法.

1999 年国务院发布实施的《商用密码管理条例》第一章第二条规定: “本条例所称商用密码,是指对
不涉及国家秘密内容的信息进行加密保护或者安全认证所使用的密码技术和密码产品。


Hash函数与数字签名:

(1)Hash函数:

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

令 h 表示 Hash 函数,则 满足下列条件:
(l) h 的输入可以是任意长度的消息或文件 M;(2) h 的输出的长度是固定的;(3) 给定 h 和 M, 计算 h(M) 是容易的;(4) 给定 h 的描述,找两个不同的消息 Ml M2, 使得 h(M1)=h(M2) 是计算上不可行的;

(2)Hash算法:

(1)MD5 算法:
MD5 以 512 位数据块为单位来处理输入,产生 128 位的消息摘要,即MD5 能产生 128 比特长度的
哈希值,MD5 使用广泛,常用在文件完整性检查.(2)SHA 算法:
以 512 位数据块为单位来处理输入,产生 160的哈希值,具有比 MD5 更强的安全性 SHA 算法的安全
性不断改进,已发布的版本有 SHA-2,SHA-3。SHA 算法 生的哈希值长度有 SHA-224 SHA-256 
SHA-384 SHA-512 等.(3)SM3 国产算法:
SM3 是国家密码管理局千 2010 年公布的商用密码杂凑算法标准 该算法消息分组长度为512 比特,
输出杂凑值长度为 256 比特,采用 Merkle-Damgard 结构.

(3)数字签名:

(1)数字签名:是签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果,该结果只能用签名者的公钥进行验证,用千确认待签名数据的完整性、签名者身份的真实性和签名行为的抗抵赖性。

(2)数字签名的目的:是通过网络信息安全技术手段实现传统的纸面签字或者盖章的功能,以确认交易当事人的真实身份,保证交易的安全性、真实性和不可抵赖性。

(3)数字签名具有与手写签名一样的特点,是可信的、不可伪造的、不可重用的、不可抵赖的以及不可修改的数。

数字签名 少应满足以下三个条件:(1) 非否认。签名者事后不能否认自己的签名。(2) 真实性。接收者能验证签名,而任何其他人都不能伪造签名。(3) 可鉴别性。当双方关于签名的真伪发生争执时,第三方能解决双方之间发生的争执。

(4)一个数字签名方案一般由签名算法和验证算法组成。典型的数字签名方案有 RSA 签名体制、 Rabin 签名体制、 ElGamal 签名体制和 DSS (Data Signature Standard) 标准。

(5)签名与加密的不同之处在于,加密的目的是保护信息不被非授权用户访问,而签名是使消息接收者确信信息的发送者是谁,信息是否被他人篡改。

出数字签名工作的基本流程,假设 Alice 需要签名发送一份电子合同文件给 BobAlice 的签名步骤如下:
第一步, Alice 使用 Hash 函数将电子合同文件生成一个消息摘要;第二步, Alice 使用自己的私钥,把消息摘要加密处理,形成一个数字签名;第三步, Alice 把电子合同文件和数字签名一同发送给 Bob Alice 的签名过程;

Bob 收到 Alice 发送的电子合同文件及数字签名后,为确信电子合同文件是 Alice 所认可的,
验证步骤如下:
第一步, Bob 使用与 Alice 相同的 Hash 算法,计算所收到的电子合同文件的消息摘要;第二步, Bob 使用 Alice 的公钥,解密来自 Alice 的加密消息摘要,恢复 Alice 原来的消息摘要;第三步, Bob 比较自己产生的消息摘要和恢复出来的消息摘要之间的异同。若两个消息摘要相同,
则表明电子合同文件来自 Alice 。如果两个消息摘要的比较结果不一致,则表明电子合同文件已被篡改。


密码管理与数字证书:

密码系统的安全性依赖于密码管理。密码管理主要可以分成三个方面的内容,即密钥管理、密码管理政策、密码测评.


(1)密码管理:

(1)密钥管理:
主要围绕密钥的生命周期进行,包括密钥生成、密钥存储、密钥分发、密钥使用、密钥更新、
密钥撤销、密钥备份、密钥恢复、密钥销毁、密钥审计。(2)密码管理政策:
密码管理政策是指国家对密码进行管理的有关法律政策文件、标准规范、安全质晕测评等。
《中华人民共和国密码法》明确规定,密码分为核心密码、普通密码和商用密码,实行分类管理。
核心密码、普通密码用千保护国家秘密信息,属于国家秘密,由密码管理部门依法实行严格统一管理 
商用密码用千保护不属千国家秘密的信息,公民、法人和其他组织均可依法使用商用密码保护网络与
信息安全.(3)密码测评:
密码测评是指对相关密码产品及系统进行安全性、合规性评估,以确保相关对象的密码安全有效,
保障密码系统的安全运行。

(2)数字证书:

数字证书 (D ital Certificate) 也称公钥证书,是由证书认证机构 (CA) 签名的包含公开密钥
拥有者信息、公开密钥、签发者信息、有效期以及扩展信息的 种数据结构。

(1)数字证书按类别可分为:个人证书、机构证书和设备证书.(2)按用途可分为:签名证书和加密证书。其中,签名证书是用于证明签名公钥的数字证书。加密证书是用于证明加密公钥的数字证书。(3)为更好地管理数字证书, 般是基千 PK.I 技术建立数字证书认证系统(简称为 CA),
CA 提供数字证书的申请、审核、签发、查询、发布以及证书吊销等全生命周期的管理服务。


安全协议:

(1)Diffie-Hellman 密码交换协议:

简称 Dillie-Hellman 密钥交换协议。 Dillie-Hellman 密钥交换协议基于求解离散对数问题的困难性;


(2)SSH:

SSH Secure Shell 的缩写,即“安全外壳”,它是基于公钥的安全应用协议,由 SSH 输层协议、 SSH 用户认证协议和 SSH 连接协议三个子协议组成,各协议分工合作,实现加密、认证、完整性检查等多种安全服务。

SSH 传输层协议:提供算法协商和密钥交换,并实现服务器的认证,最终形成一个加密的安全连接,
该安全连接提供完整性、保密性和压缩选项服务。SSH 用户认证协议:则利用传输层的服务来建立连接,使用传统的口令认证、公钥认证、主机认证等
多种机制认证用户。SSH 连接协议:在前面两个协议的基础上,利用已建立的认证连接,并将其分解为多种不同的并发逻辑通道,
支持注册会话隧道和 TCP 转发 (TCP-forwarding) ,而且能为这些通道提供流控服务以及通道参数协商机制。

SSH 的工作机制共分七个步骤:


在实际的应用中, SSH 在端口转发技术的基础上,能够支持远程登录(Telnet) rsh rlogin 、文件传输 (scp) 等多种安全服务。 Linux 系统一般提供 SSH 服务, SSH的服务进程端口通常为 22.

    

    

学习书籍:信息安全工程师教程 

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

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

相关文章

ffmpeg离线安装ffmpeg-4.1.4-amd64-static.tar.xz

1.下载离线包 John Van Sickle - FFmpeg Static Builds 找历史版本:Index of /ffmpeg/old-releases 我选择是的4.1.4版本 2.解压 tar -xvJf ffmpeg-4.1.4-amd64-static.tar.xz 3.移动文件到opt目录下 4.添加全局链接 ln -s /opt/ffmpeg-4.1.4-amd64-static/ffm…

在macOS、Windows上使用VSCode + SSH实现远程Matplotlib图形显示

简介 在 macOS 上使用 VSCode SSH 环境来显示 Matplotlib 绘制的图形需要进行一些配置。因为默认情况下, Matplotlib 的图形是无法显示在远程计算机的桌面上的。您可以通过设置 Matplotlib 使用不同的后端(backend)来实现将图形显示在本地计算机上。 第一步&…

Docker安装Nacos2.0.2

docker拉取镜像 docker pull nacos/nacos-server:2.0.2查看镜像 docker images创建容器和运行 docker run -e JAVA_OPTS"-Xms256m -Xmx256m" -e MODEstandalone -e PREFER_HOST_MODEhostname -p 8848:8848 --privilegedtrue --restartalways --name nacos -d naco…

小程序制作教程

步骤一:规划和设计 在开始制作微信小程序之前,首先需要规划和设计您的小程序。确定您想要提供的服务或功能,并考虑用户体验和界面设计。绘制草图和构思完整的页面布局,这将使您更好地理解小程序结构和功能。 步骤二:…

Python Selenium设计模式及代码实现

前言 本文就python selenium自动化测试实践中所需要的POM设计模式进行分享,以便大家在实践中对POM的特点、应用场景和核心思想有一定的理解和掌握。 为什么要用POM 基于python selenium2开始UI级自动化测试并不是多么艰巨的任务。**只需要定位到元素,…

公网访问的Linux CentOS本地Web站点搭建指南

文章目录 前言1. 本地搭建web站点2. 测试局域网访问3. 公开本地web网站3.1 安装cpolar内网穿透3.2 创建http隧道,指向本地80端口3.3 配置后台服务 4. 配置固定二级子域名5. 测试使用固定二级子域名访问本地web站点 前言 在web项目中,部署的web站点需要被外部访问,则…

基于SPDK-vhost的云原生Kubevirt虚拟化存储IO的优化方案

摘要 本文主要介绍针对云原生kubernetes虚拟化IO的应用场景,在Kubevirt中引入SPDK-vhost的支持,来加速虚机中IO存储性能。同时基于Intel开源的Workload Service Framework[1]平台集成部署一套端到端虚拟化IO的应用场景做基本的性能对比测试。 云原生Kube…

人员定位安全管控系统:提升安全管理水平的智能解决方案

在当今社会,人员安全管理成为各行各业关注的焦点。为了保障人员的安全和提高管理效率,人员定位安全管控系统应运而生。 人员定位安全管控系统采用多种定位技术来实现对人员位置的准确定位,如GPS(全球定位系统)、Wi-Fi…

超低输入电压升压电路解决方案

便携式产品一般都采用电池供电,而因为成本和体积方面的考虑,在设计上有减少使用电池数量及体积的趋势。另外,亦因全球能源问题,各种各类的电池使用已备受关注了。当中包括太阳能电池及燃料电池。 而这样就会影响到电源电压比设备所…

Flask的send file和send_from_directory的区别

可以自行查看flask 文档。 send file高效; send from directory安全,且适用于静态资源交互。 都是实现相同的功能的。 send_file send_from_directory

直播回顾 | SDS 容灾方案,让制品数据更安全

7 月 18 日,腾讯云 CODING 与 XSKY星辰天合联合举办了主题为“SDS 容灾方案,让制品数据更安全”的线上研讨会。 来自腾讯云 CODING 的高级解决方案架构师陈钧桐和 XSKY星辰天合金融行业解决方案专家战策,分享了制品管理的困境与需求、腾讯云…

blender 基础材质篇

材质展示 材质背景介绍 什么是PBR? PBR 全称为 Physically Based Rendering,译为基于物理属性的引擎渲染,也就是说会把物质的颜色、粗糙度、高光属性等进行分别处理,使物质体现出更真实的感觉; 什么是BRDF&#xff…

前端工程师的岗位职责(合集)

篇一 岗位职责: 1、负责网站前端开发,实现产品的页面交互及功能实现; 2、与程序开发人员紧密合作,制作前端及后端程序接口标准; 3、完成产品的设计、开发、测试、修改bug等工作,包括业务需求的沟通,功能模块详细设计…

背包问题(一)

题目一 01背包 有 N 件物品和一个容量是 V的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行两个整数…

力扣C++|一题多解之数学题专场(2)

目录 50. Pow(x, n) 60. 排列序列 66. 加一 67. 二进制求和 69. x 的平方根 50. Pow(x, n) 实现 pow(x,n),即计算 x 的 n 次幂函数(即x^n)。 示例 1: 输入:x 2.00000, n 10 输出:1024.00000 示例…

听GPT 讲K8s源代码--pkg(八)

k8s项目中 pkg/kubelet/envvars,pkg/kubelet/events,pkg/kubelet/eviction,pkg/kubelet/images,pkg/kubelet/kubeletconfig这些目录都是 kubelet 组件的不同功能模块所在的代码目录。 pkg/kubelet/envvars 目录中包含了与容器运行…

JVM之内存与垃圾回收篇3

文章目录 8 垃圾回收8.1 基本理论8.1.1 对象的finalization机制8.1.2 理解System.gc8.1.3 内存溢出和内存泄漏8.1.4 Stop The World8.1.5 安全点和安全区域8.1.6 Java中的引用 8.2 垃圾回收算法8.2.1 引用计数法8.2.2 可达性分析8.2.2.1 使用MAT查看GC Roots8.2.2.2 使用JProfi…

整车总线系列——FlexRay 四

整车总线系列——FlexRay 四 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能…

Spring使用注解存储Bean对象

文章目录 一. 配置扫描路径二. 使用注解储存Bean对象1. 使用五大类注解储存Bean2. 为什么要有五大类注解?3.4有关获取Bean参数的命名规则 三. 使用方法注解储存Bean对象1. 方法注解储存对象的用法2. Bean的重命名 在前一篇博客中( Spring项目创建与Bean…

nginx 配置 wss加密访问 mqtt

1. 在服务器上部署mqtt服务 2.在宝塔上配置域名证书 3.nginx配置websocket server {listen 80;listen 443 ssl http2;server_name ws-xx.example.com;index index.php index.html index.htm default.php default.htm default.html;root /www/wwwroot/ws-xx.example.com;loca…