在学习的过程中,用到了密钥学的一些知识,记录下来
本文参考
阮一峰的文章
http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature
以及YuanFan的文章
https://www.jianshu.com/p/68274c364781

对称密钥(Symmetric Cryptography)

也称私钥加密,属于对称密码体制,是指双方用同一个密钥进行加密和解密。

安全性依赖于:1、加密算法的安全性。2、密钥的安全性
优点:算法公开,加/解密速度快,占用空间小
缺点:密钥的管理和分发难度大
用途:信息量大的加密
代表算法:DES算法、3DES算法、IDEA算法、AES算法。
存在问题:无法实现数字签名、在建立安全信道之前,密钥如何传输。


非对称密钥(Asymmetric Cryptography)

也称公钥加密,属于非对称密码体制。它使用了一对密钥,一个公钥,一个私钥。A产生了一对密钥,保留私钥,传播公钥,如果B需要给A发送加密信息,B用A的公钥加密,A收到以后,再用私钥解开。

优点:安全性高,不需要交换密钥
缺点:加/解密速度慢,不适合大量加密。
用途:关键性的、核心机密数据。
代表算法:RSA算法、ElGamal算法、椭圆曲线加密算法。
存在问题:
1、由于公钥公开,如果有人发给我消息,我不知道是谁发的。
2、用自己私钥加密的信息,任何知道我公钥的人都能看到。


混合加密体制

指对称加密和非对称加密混合在一起使用。
在对称加密中,我们提到密钥的分发是个大问题,可以用混合密钥加密来解决。
假设A和B要实现加密通信

1、A找到B的公钥
2、 A产生对称密钥,用B的公钥加密。
3、将加密后的信息发给B
4、B收到后,用私钥解密,得到对称密钥。
5、A和B可以使用对称密钥进行通信。


散列函数与信息摘要

Hash函数也称为散列函数,它能够对不同长度的输入信息,产生固定长度的输出。这种固定长度的输出称之为原消息的散列或者消息摘要,消息摘要长度固定且比原始信息小得多,一般情况下,消息摘要是不可逆的,即从消息摘要无法还原原文。但有些情况还是可以的,自行搜索。

散列算法:散列算法就是产生信息散列值的算法,它有一个特性,就是在输入信息中如果发生细微的改变,比如给变了二进制的一位,都可以改变散列值中每个比特的特性,导致最后的输出结果大相径庭,所以它对于检测消息或者密钥等信息对象中的任何微小的变化非常有用。

一个安全的散列算法H需要满足:

1、输入长度是任意的,输出是固定的
2、对每一个给定的输入,计算输出是很容易的
3、给定H,找到两个不同的输入,输出同一个值在计算上不可行
4、给定H和一个消息x,找到另一个不同的消息y,使它们散列到同一个值在计算上不可行
常见的散列算法:MD2、MD4、MD5、SHA、SHA-1


数字签名

数字签名是指发送方以电子形式签名一个消息或文件,表示签名人对该消息或文件负责。数字签名综合使用了消息摘要和非对称加密技术。可以保证接收者能够核实发送者对报文的签名,发送者时候不抵赖对报文的签名。

数字签名的功能

1、确认信息由签名这发送
2、确认信息未被篡改

A要发送信息给B,数字签名过程。

1、A将发送信息用散列函数形成信息摘要
2、A将自己的私钥对消息摘要进行加密,形成数字签名
3、A将数字签名附在消息后面,B得到后,用A公钥对签名信息解密,得到信息摘要。
4、B用同样的散列函数对接收到的消息进行散列,得到信息摘要
5、将两份信息摘要进行对比,如果完全一致,则信息没有被篡改,签名有效。否则拒收。


数字证书

设想这样一种情况:

A和B用非对称密钥体制进行沟通,但此时C偷偷将B手中的A公钥替换为自己的公钥,C用自己私钥加密与B沟通,相当于C冒名顶替A,C可以产生“数字签名”证明自己是A。这时候,B如何确认自己手中的公钥是A的,而不是别人的呢?這时候就需要用到数字证书。

数字证书(CA)功能

1、信息保密
2、身份确认
3、不可否认性
4、数据完整性

B找到“证书中心”(certificate authority,简称CA)后,证书中心用自己的私钥对A的公钥以及一些其他信息进行加密,就形成了数字证书

1、A->B发信息,附上数字签名和数字证书,用私钥加密
2、B收到以后,用CA的公钥进行验证数字证书
3、验证通过,确认消息来自A

对称密钥、非对称密钥、数字签名、数字证书相关推荐

  1. 什么是 数字签名 数字证书 数字信封

    1,数字签名 数字证书 数字信封 当A和B进行通信时,将A发送的消息的hash值先用A的私钥进行加密(数字签名),B存储A的公钥,B收到信息之后利用公钥进行解密,保证信息的完整性和保密性来自于A 存在 ...

  2. 网络安全--数字签名/数字证书

    对称加密: 未加密的信息+秘钥 --> 加密的黑盒子 --> 加密后的信息 加密后的信息+秘钥 --> 解密的黑盒子 --> 未加密的信息 非对称加密: 未加密的信息+公钥 - ...

  3. 对称加密与非对称加密的区别_https原理及对称加密、非对称加密、数字证书、数字签名的含义...

    一.为什么要使用https 使用https的原因其实很简单,就是因为http的不安全. 当我们往服务器发送比较隐私的数据(比如说你的银行卡,身份证)时,如果使用http进行通信.那么安全性将得不到保障 ...

  4. 对称加密、非对称加密、数字证书

    (转)白话数字签名(1)--基本原理(新!) 摘要 本系列通过通俗易懂的讲解,让您就像读小说一般,轻轻松松就能理解数字签名的基本原理和应用方法(即使您是一个并不精通计算机的企业老总,也能读懂本篇文章) ...

  5. 非对称加密与数字证书

    文章目录 1 非对称加密 2 数字签名 3 数字证书 4 数字签名和数字证书的区别 5 CA 认证中心如何保证权威性 6 HTTPS 协议 7 HTTPS 与 SSL 8 为什么不一直使用HTTPS ...

  6. Linux系统安全概述-sudo授权-pam认证机制-对称加密-非对称加密-md5-数字证书

    内容: 17.1 Linux系统安全概述-su-sudo授权 17.2 pam认证机制概述 17.3 对称加密-非对称加密方法 17.4 md5-sha1-哈希算法使用方法 17.5 CA证书的作用 ...

  7. 信息安全基础 - 对称加密非对称加密数字签名

    对称加密: 常见的对称加密算法:DES,3DES,AES,RC-5,IDEA 对称加密的优点:效率高,速度快 对称加密的缺点:由于密钥的长度短,导致加密的强度低: 非对称加密: 非对称加密的优点:加密 ...

  8. 对称加密、非对称加密、RSA、消息摘要、数字签名、数字证书与 HTTPS 简介

    文章目录 1.加密算法简介 1.1 对称加密(Symmetric Key Algorithms) 1.2 非对称加密(Asymmetric Key Algorithms) 1.3 非对称加密 RSA ...

  9. 一文看懂对称加密、非对称加密、摘要、数字签名、数字证书

    文章目录 前言 从一个故事说起 1. 对称加密 2. 非对称加密 3. 摘要 4. 数字签名 5. 中间人攻击 6. 数字证书 参考资料 前言 最近需要实现一个艺术品买卖交易平台.由于安全性的需求,学 ...

  10. 网络知识详解之:HTTPS通信原理剖析(对称、非对称加密、数字签名、数字证书)

    网络知识详解之:HTTPS通信原理剖析(对称.非对称加密.数字签名.数字证书) 计算机网络相关知识体系详解 网络知识详解之:TCP连接原理详解 网络知识详解之:HTTP协议基础 网络知识详解之:HTT ...

最新文章

  1. 过滤查询集中的空名称或NULL名称
  2. hihoCoder#1196 : 高斯消元·二(开关灯问题)
  3. 微信支付教程系列之公众号支付
  4. QT信号与槽(自定义带参数的信号)
  5. 华为mate9 android p,安卓手机为什么越用越卡?华为Mate9搭载EMUI 5.0告别卡顿
  6. python 文件和目录 当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
  7. 【译】怎样处理 Safari 移动端对图片资源的限制
  8. [转载] C#面向对象设计模式纵横谈——7. Adapter适配器模式
  9. Docker容器管理
  10. 无需安装Oracle,用PL/SQL直接连接Oracle服务器
  11. 小米开源移动端深度学习框架MACE,自主研发,专为IoT设备优化
  12. zplane函数怎么用m文件调用_elastique.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...
  13. ThinkSNS电商系统,带你玩转社群经济
  14. ASP.NET OAuth 2.0 新手上路
  15. 毕设题目:Matlab图像检索
  16. concat oracle 多个字符串_史上最全的MySQL 字符串函数,赶紧收藏!!
  17. bind + DNSCrypt 实现安全加密转发,避免DNS污染
  18. 自然语言处理(NLP)语义分析:“词汇级”语义分析【词义消歧、词义表示和学习】、“句子级”语义分析【浅层语义分析(语义角色标注)、深层语义分析】
  19. 学生宿舍管理系统设计与分析
  20. Seurat 4.0 | 单细胞转录组数据整合(scRNA-seq integration)

热门文章

  1. 怎样在计算机桌面上安装驱动器,驱动安装好了却不知该怎么查看 如何找到驱动安装的位置 - 驱动管家...
  2. 电脑蓝牙音箱,电脑怎么连蓝牙音响吗
  3. PTES渗透测试执行标准
  4. Matlab Coder将m文件转换成C/C++
  5. 解决:卸载anaconda后 cmd闪退或打不开
  6. 大数据第三季--sqoop(day1)-徐培成-专题视频课程
  7. 识别圆的强化RANSAC算法
  8. 使用Simian工具扫描重复代码
  9. java调试报告_java,生成测试报告.docx
  10. 设置nextcloud上传文件的大小