密码学知识

文章目录

  • 密码学
  • 一、对称加密体系
  • 二、模式
  • 三、非对称加密体系
  • 四、数据完整性
  • 五、数字签名
  • 六、国密算法
  • 七、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*3=168比特
  • 三重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, SMTP,ftp,这些协议在互联网上以明文的形式传输数据,在互联网早期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

在这里插入图片描述

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

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

相关文章

德勒报告:2018年全球生命科学发展趋势

来源:新浪医药、战略前沿技术健康生命科学(Health life sciences)是指应用生物学和技术来促进健康护理,包括制药、医疗技术、基因组学、诊断学、数字医疗等等。这一板块产品种类繁多,包括药品、医疗技术、诊断和数字工…

Uber致人死亡或为自动驾驶肇事责任 没有判例可循

图:Uber自动驾驶测试车辆引发致人死亡交通事故凤凰网科技讯 据《福布斯》网站北京时间3月20日报道,美国当地时间本周日傍晚,一辆由Uber运营的自动驾驶汽车在亚利桑那州坦佩(Tempe)撞倒了一名女性并致其死亡。Uber周一表示,公司暂停…

28个Unix/Linux的命令行神器

From: http://os.51cto.com/art/201207/347414.htm 下面收集的Unix/Linux下的28个命令行下的工具,有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的。这些工具都非常不错,希望每个人都知道。本篇文章还在Hacker News上被…

Java加密与解密的艺术~SHA算法实现

MesssageDigest类也支持SHA算法,主要包含SHA-1、SHA-256、SHA-384和SHA-512四种算法。通过第三方加密组件包Bouncy Castle,可支持SHA-224算法。 SHA Java原始 /*** 2009-9-3*/ package org.zlex.chapter06_2_1;import java.security.MessageDigest; /**…

linux 无法打开.ttf_win7系统ttf文件打不开怎么办【解决方法】

我们都清楚ttf文件是windows系统当中的字体文件,能够直接通过这个文件进行字体的添加,不过最近有位win7系统用户却遇到了ttf文件无法打开的情况,系统提示“该文件没有与之关联的程序来执行该操作。请安装一个程序,或者&#xff0c…

全球20大智慧城市排行榜揭晓:无锡列中国第一,银川、杭州上榜!

来源:Juniper Research、物联网智库近日,英国市场调研机构Juniper Research发布了“全球智慧城市Top 20”的榜单,这份榜单从出行、医疗、公共安全和工作效率四个方面对城市的智能化程度进行综合评定,并揭示了这些城市在节省时间、…

Mono 2.0

Mono 2.0 Mono 2.0 发布有一段时间了,早就想体验一下,一直没时间,最近比效闲,非常闲,于是就尝试了一下Mono 2.0 操作系统 考虑到兼容问题,我没选择常用的Rad Hat,而是选择了openSUSE 11.0 , openSUSE 11.0 我也是第一次用, 在Virtual PC 2007上安装,每次到开始安装就黑屏,…

Java加密与解密的艺术~MAC算法实现

Java 原生 /*** 2009-9-10*/ package org.zlex.chapter06_3_1;import javax.crypto.KeyGenerator; import javax.crypto.Mac; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec;/*** MAC加密组件* * author 梁栋* version 1.0* since 1.0*/ public abs…

mysql rpm 启动_MySQL安装(rpm)和启动配置

MySQL安装(rpm)和启动配置安装环境:OS:Oracle Linux 5.9安装步骤:1.解压MySql安装包[rootbakdbserver mysql]# tar -xf MySQL-5.5.24-1.rhel5.x86_64.tar[rootbakdbserver mysql]# ll总计 373920-rw-r--r-- 1 root root 191242240 2012-05-2…

量子计算陷入难解困境,未来发展何去何从?

来源:科研圈量子计算机在一些具体任务上的表现很快就能超越传统电子计算机,但是在量子计算真正实现其巨大潜力前,依然需要克服许多基础性的难题。在量子计算的可行性被质疑长达几十年后,全世界范围内忽然掀起了对于量子计算的追逐…

mysql 64位 8.0.11_mysql8.0.11 在windows64安装 步骤

环境:Windows 101一、安装1. 解压zip包到安装目录比如我的安装目录是:D:\Program\MySQL2.配置文件在Windows系统中,配置文件默认是安装目录下的 my.ini 文件,部分配置需要在初始安装时配置,大部分也可以在安装完成后进…

ProxyChains

proxychains-ng:https://github.com/rofl0r/proxychains-ng proxychains:https://github.com/haad/proxychains shadowsocks:https://github.com/shadowsocks/shadowsocks 安装了 shadowsocks 之后,只能网页出去逛逛,…

IDC发布对话式人工智能白皮书|附下载

来源:专知丨公众号近日,全球著名的信息技术、电信行业和消费科技咨询公司IDC(国际数据公司, International Data Corporation)发布了《对话式人工智能白皮书》(下文简称《白皮书》)。《白皮书》…

Java加密与解密的艺术~思维导图

#原图 System.out.println("https://www.processon.com/view/link/61a8323fe401fd49ed41cde0");

一场关于Google不作恶信条的辩论会

2008年11月18日,Intelligence Squared 在纽约 Rockefeller 大学召开了一次关于 Google 不作恶信条(Dontt be evil Motto)的辩论会,这场牛津式辩论会(Oxford-style debate )持续了近两个小时,《纽…

2017美国人工智能和机器学习行业种子投资首次下降

来源:199IT互联网数据中心根据Crunchbase的数据,风险投资对机器学习和人工智能的热情已经开始趋于平静,至少在美国是这样。但这可能并不是一件坏事。尽管人工智能和机器学习成为学术研究的热点领域已经有数十年了,但是尚未成为风险…

Java加密与解密的艺术~AES实现

AES算法成为DES算法的替代者,其实现也成为其他对称加密算法实现的参考模型。 AES 实现 /*** 2009-10-5*/ package org.zlex.chapter07_3;import java.security.Key;import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey;…

利用多核多线程进行程序优化

利用多核多线程进行程序优化2008 年 11 月 17 日 大家也许还记得 2005 年 3 月 C 大师 Herb Sutter 在 Dr.Dobb’s Journal 上发表了一篇名为《免费的午餐已经结束》的文章。文章指出:现在的程序员对效率、伸缩性、吞吐量等一系列性能指标相当忽视,很多性…

DOS 批处理

From: http://www.jb51.net/article/97204.htm From: http://www.92to.com/bangong/2016/04-08/2998914.html 百度文库:目前为止最全的批处理教程 批处理经典入门教程 批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。 批处理,也称…

python range 步长为负数_Python入门第7课,循环结构学习,for语句range函数的3种用法...

上课前,大陈带领学生们一起回顾和梳理前面学过的知识。体验课,Python与人工智能初体验。第1课,输出语句及赋值语句。第2课,输入语句学习。第3课、第4课,学习条件控制if语句。第5课、第6课,阶段练习及讲解。…