济南 营销型网站建设,网站开发实现总结,天津 企业网站建设,网站办公室文章目录密码学一、对称加密体系二、模式三、非对称加密体系四、数据完整性五、数字签名六、国密算法七、SSL协议八、CA密码学
提示#xff1a;本文包括常见的对称加密和非对称加密算法#xff0c;hash#xff0c;数字签名 提示#xff1a;以下是本篇文章正文内容#xf…
文章目录密码学一、对称加密体系二、模式三、非对称加密体系四、数据完整性五、数字签名六、国密算法七、SSL协议八、CA密码学
提示本文包括常见的对称加密和非对称加密算法hash数字签名 提示以下是本篇文章正文内容下面案例可供参考
一、对称加密体系
1.简介 明文Alice-Bob:ABC 密文BCD 加密解密的过程中使用的是同一个秘钥也称之为单秘钥加密。 2.对称加密的问题 秘钥配送问题 接受者Bob在收到了Alice发来的密文Bob想要解密就必须使用和Alice加密时使用的同一秘钥因此Alice必须也要将秘钥发送给Bob那么如果能够找到一种安全的方式发送秘钥那么也可以使用同一种方式来发送明文。 3.对称加密实例 DES 1.DES是一种将64比特的明文加密成64比特的密文的对称密码算法它的秘钥长度是56比特.DES的秘钥长度实际上是64比特但是由于每个7为会设置一个错误检查的比特因此实质上秘钥长度是56比特。 (2)DES以64比特的明文为一个单位进行加密每64比特为一个分组。 (3)DES每次只能加密64比特的明文如果加密的明文的长度比较长就需要对DES进行迭代而迭代的具体方案就称为模式。 3DES (1)三重des为了增强DES的强度将des重复3次得到的一种加密算法 (2)3DES加密机制
明文经过三次DES处理才能变成最后的密文由于DES秘钥的长度实质上是56比特因此三重DES的秘钥长度是56*3168比特三重DES并不是进行三次加密(加密-加密-加密),而是加密-解密-加密de 过程这种设计是为了让3DES能够兼容普通的DES。当三重Des所有的秘钥都相同时三重DES也就是等于普通的DES因此DES加密的密文也就可以使用三重DES来进行解密。密码算法不能依靠算法的不公开性来保证密码算法的安全性反而需要公开算法思想让大家都去破解如果大家此时都破解不了这才安全的密码算法。
二、模式
- CBC模式 CBC模式的全称是Cipher Block Chaining密文分组链接模式,之所以叫密文分组链接模式是因为密文分组想链条一样相互链接在一起。 初始化向量当加密第一个明文分组时由于不存在前一个密文分组因此需要事先准备一个长度为一个分组的比特序列来代替前一个密文分组这个比特序列就称之为初始化向量通常缩写称IV。 分析 1.假设CBC模式加密的密文分组中有一个分组损坏了(由于硬盘故障导致密文分组的值发生了变化)只要密文分组的长度没有发生变化则解密是最多只会有2个分组受到数据损坏的影响。 2.假设CBC模式的密文分组中长度发生了变化会导致每一个分组会向后一个分组借位这样就导致了后面的分组全部发生变化最终导致后面的数据全部解密失败。 ECB模式 ECB模式全称是Electronic CodeBook也称之为电子密码本模式。 CFB模式 CFB模式的全称是CIPher FeedBlock密文反馈模式前一个密文分组会被送回到密码算法的输入端这就是反馈。 OFB模式 OFB模式的全称是Output FeedBack输出反馈模式秘法算法的输出会反馈到密码算法的输入中。
三、非对称加密体系
1.简介 非对称加密也叫做公钥密码在公钥秘钥中秘钥分为加密秘钥和解密秘钥发送者使用加密秘钥对消息进行加密接收者使用解密秘钥对消息进行解密加密秘钥也称之为公钥解密秘钥也称之为私钥。使用某一个人的公钥进行加密那么必须使用这个的私钥才能进行解密公钥和私钥是配对的。 总结
a. 发送者只需要公钥b. 接收者只需要解密秘钥c. 解密秘钥不可以被公开d. 加密秘钥可以任意公开
2.公钥通信的流程 3.公钥密码存在的问题
a.公钥密码虽然解决了秘钥配送问题但是我们还要判断所得到的公钥是否正确这个问题被称之为公钥认证问题b.公钥密码的处理速度很慢只有对称密码的几百分之一。
四、数据完整性
1.简介 目前数据的完整性的解决方案主要采用单向三列函数和加密算法。单向散列函数能够将一段信息映射成一段小的信息码并且不同文件散列成相同信息的概率很低。通常我们将原始信息使用单向散列函数处理成一段信息码然后对其加密和文件一起保存。 单向散列函数有一个输入和一个输出其中输入称为消息输出称为散列值单向散列函数也称之为摘要函数哈希函数杂凑函数。 2.单向散列函数的性质
根据任意长度的消息计算出固定长度的散列值能够快速计算出散列值具备单向性
3.单向散列函数的实际应用
检测软件是否被篡改 单向散列函数能够辨别出篡改但是无法辨别出真伪。
五、数字签名
1.简介 数字签名可以识别篡改和伪装和防止否认在数字签名中有两种行为
a. 生成消息签名b. 验证消息签名
2.公钥密码和数字签名 用公钥进行加密(公钥密码):
用私钥进行加密(数字签名)
2.数字签名实例 (1)直接对消息进行签名(DSA)
(2)对消息的散列值进行签名 上面我们使用直接对消息签名的办法但是这种办法需要对整个消息进行加密非常耗时所以我们可以求出消息的散列码再对散列值加密无论消息有多长散列值都是固定的因此对散列值加密要快很多。
六、国密算法
SM2非对称加密基于椭圆加密签名速度与秘钥生成速度都快于RSA。 SM3: 消息摘要算法散列值为256位。 SM4分组对称加密算法秘钥长度和分组长度均为128位。
七、SSL协议
1.简介 应用层很多传输协议是不安全的比如http SMTPftp这些协议在互联网上以明文的形式传输数据在互联网早期netscape在应用层和传输层加了半个层主要用于保密和鉴别后来国际标准化组织研发了更加流行的通用协议TLS。 2.SSL协议的特性
a.保密在握手协议中定义了会话秘钥所有消息都会被加密b.鉴别可选的客户端认证和强制的服务器端认证c.完整性传送的消息包括消息完整性检查(使用MAC)MAC:含有秘钥的散列函数兼容MD和SHA算法的特性并在此基础加入秘钥是一种更为安全的消息摘要算法。
3.SSL协议的工作原理 SSL协议主要是有三个自协议组成分别是握手协议记录协议警报协议。
3.1握手协议 握手协议是客户端和服务器端用SSL链接通信时使用的第一个子协议包括客户端与服务器之间的一系列消息主要是协商加密哈希算法签名算法这些算法主要用来保护传输数据。主要包含三个字段分别是Type:消息类型Length:消息长度Content:消息内容 3.1.1建立安全能力 SSL握手的第一剪短启动逻辑连接建立连接的安全能力。首先客户端想服务器发出client hello消息并等待服务器响应随后服务器想客户机返回server hello对client hello进行确认。 ClentHello主要包含的信息 (1) 客户端可以支持的SSL最高版本 (2) 一个用于生成主密钥的32字节的随机数 (3) 一个客户端可以支持的密码算法列表 密码套件的格式每个套件以SSL开头。 SSL_DHE_RSA_WITH_DES_CBC_WITH_SHA ServerHello主要包含的信息 (1) 服务器端所采用的SSL版本号 (2) 一个用于生成主密钥的32字节的随机数 3.1.2服务器鉴别与秘钥交换 服务器启动SSL握手第2阶段是消息的唯一发送方客户端是消息的唯一接受方。 3.1.3客户端鉴别与秘钥交换 客户端启动SSL握手协议的第三阶段是本阶段所有消息的唯一发送方服务器是所有消息唯一的接受方。 (1).证书为了对服务证明自己客户端要发送一个证书信息 (2)客户端发送主密钥给服务端会使用服务端的公钥进行加密 (3)对服务端进行验证 3.1.4完成阶段 客户端启动SSL握手第四阶段结束会话。
3.2记录协议 记录协议在客户端和服务端握手成功后使用进入SSL记录协议主要提供两个服务
保密性使用握手协议商议的秘钥进行实现完整性握手协议定义了MAC用于保证消息的完整性
3.3警报协议 客户端和服务端如果发现有错误会向对方发送一个警报信息如果是致命错误则会立即关闭SSL链接双方会删除相关的会话ID秘钥等等。每个警报共2个字节第一个字节表示错误类型如果是警报则值为1如果是致命错误则值为2第2个字节是具体的实际错误。
八、CA