链客,专为开发者而生,有问必答!

此文章来自区块链技术社区,未经允许拒绝转载。


对称加密
对称密钥是双方使用相同的密钥 。
对称加密的要求
  (1)需要强大的加密算法。算法至少应该满足:即使分析人员知道了算法并能访问一些或者更多的密文,也不能译出密文或得出密匙。通常,这个要求以更强硬的形式表达出来,那就是:即使分析人员拥有一些密文和生成密文的明文,也不能译出密文或者发现密匙。即,加密算法应足以抵抗已知明文类型的破译。
  (2)发送方和接收方必须用安全的方式来获得保密密匙的副本,必须保证密匙的安全。如果有人发现了密匙,并知道了算法,则使用此密匙的所有通信便都是可读取的。
从数学角度理解
  以一个具体例子来说明有助于真正理解对称加密这概念。假设A需要把一份明文为M的资料发给B,但是因为怕资料在传输的中途被窃听或者篡改,A用了对称加密法将M经过一个加密函数Fk处理后生成M’加密文,而B接受到加密文后通过事先商定好的Fk再次处理M’便可以还原成明文M,从而达到安全传输信息的目的。

A处: M’ = Fk(M)
  B处: M = Fk(M’)
对于普通的对称密码学,加密运算与解密运算使用同样的密钥。通常,使用的对称加密算法比较简便高效,密钥简短,破译极其困难,由于系统的保密性主要取决于密钥的安全性,所以,在公开的计算机网络上安全地传送和保管密钥是一个严峻的问题。正是由于对称密码学中双方都使用相同的密钥,因此无法实现数据签名和不可否认性等功能。

非对称加密
非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。
比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人–银行才能对你的消息解密。与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。
签名证书:
签名证书的用途:加入有A用户向B用户发送了信息“A love you”,B接收到之后怎么确定就是A发送的呢(因为中间人攻击中,假如C截获了A发送的信息后,改成“C love you”,B是无法确定这两个信息的发送者,因他她们都同样用B的工要加密),于是产生了签名证书技术。
签名证书是由CA用自己的私钥对用户的信息进行加密,并把发给用户的,用户可以在发送信息的过程中附加上自己的签名证书,让接受者验证信息的来源。当接受者接受到发送者的签名证书后即可用ca的公钥解密验证发送者的身份信息。

信息传输:
  过程:

(1) Alice需要在银行的网站做一笔交易,她的浏览器首先生成了一个随机数作为对称密钥。
(2) Alice的浏览器向银行的网站请求公钥。
(3) 银行将公钥发送给Alice。
(4) Alice的浏览器使用银行的公钥将自己的对称密钥加密。
(5) Alice的浏览器将加密后的对称密钥发送给银行。
(6) 银行使用私钥解密得到Alice浏览器的对称密钥。
(7) Alice与银行可以使用对称密钥来对沟通的内容进行加密与解密了。
采用数字签名,能完成这些功能:
(1)确认信息是由签名者发送的;
(2)确认信息自签名后到收到为止,未被修改过;
(3)签名者无法否认信息是由自己发送的。

总结
(1) 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。
(2) 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。
(3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。

对称加密和非对称加密相关推荐

  1. 加解密基础——(对称加密、非对称加密和混合加密)

    本文对之前学习过的加解密相关知识做一简单总结,以备后用. 1. 基本概念 加密算法 通常是复杂的数学公式,这些公式确定如何将明文转化为密文的过程和规则. 密钥 是一串被加入到算法中的随机比特. 待续 ...

  2. 对称加密和非对称加密介绍和区别

    什么是对称加密技术? 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短, ...

  3. 【上】安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS

    此文章转载来源于http://blog.csdn.net/tenfyguo/article/details/40922813点击打开链接 一,对称加密 所谓对称加密,就是它们在编码时使用的密钥e和解码 ...

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

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

  5. mysql对称连接什么意思_对称加密与非对称加密的区别是什么

    区别:1.对称加密中加密和解密使用的秘钥是同一个:非对称加密中采用两个密钥,一般使用公钥进行加密,私钥进行解密.2.对称加密解密的速度比较快,非对称加密和解密花费的时间长.速度相对较慢.3.对称加密的 ...

  6. 浅谈对称加密与非对称加密

    在数字加密算法中,通过可划分为对称加密和非对称加密. 一:什么是对称加密? 在对称加密算法中,加密和解密使用的是同一把钥匙,即:使用相同的密匙对同一密码进行加密和解密: 加密过程如下: 加密:原文 + ...

  7. 对称加密 与 非对称加密

    2019独角兽企业重金招聘Python工程师标准>>> 明文: 没有被加密过的内容 密文: 已经被加密的内容 算法: 通过算法对明文进行加密,如移位,置换 密钥: 加密时需要的密码, ...

  8. 对称加密、非对称加密深度解析

    密码学的发展 加密的发展史随着人类的进化逐步复杂.严谨也更安全,对于早期的移位和字母对应等加密方式我们不难理解. 移位 : 比如恺撒密码, 简单点说将 26个英文字母的顺序打乱,得到一个新的字母顺序, ...

  9. 网络协议从入门到底层原理(7)网络安全 - 常见攻击、单向散列函数、对称加密、非对称加密、混合密码系统、数字签名、证书

    网络安全 网络层 - ARP欺骗 DoS.DDoS 介绍与防御 传输层 - SYN洪水攻击(SYN flooding attack) 传输层 - LAND攻击 应用层 - DNS劫持.HTTP劫持 H ...

  10. HTTPS是对称加密还是非对称加密?

    你知道,HTTPS用的是对称加密还是非对称加密? HTTPS灵魂拷问 1)为什么用了 HTTPS 就是安全的? 2)HTTPS 的底层原理如何实现? 3)用了 HTTPS 就一定安全吗? 不用担心,本 ...

最新文章

  1. WiredTiger引擎编译 及 LT_PREREQ(2.2.6)问题解决
  2. 验证用户名是否存在,手机号是否匹配,进而修改密码
  3. 10.1 分别通过函数和重载运算符来实现复数相加
  4. android动态添加xml布局,android – 如何动态添加视图已经在xml布局中声明的RelativeLayout?...
  5. 计蒜客 Reversion Count
  6. IT人喝酒,不同岗位不同姿势
  7. [SDOI2019] 热闹的聚会与尴尬的聚会
  8. java面向对象的多态_java面向对象(五)之多态
  9. Windows学习总结(4)——Host文件的作用和如何修改Host文件
  10. Windows操作系统下使用pip安装pygame
  11. android----AsyncHttpClient的get,post和图片上传
  12. 【模拟】Workout for a Dumbbell
  13. python做客户端监控程序(python 监控程序)
  14. BS7799系列讲座:HTP模型图及构建(转载)
  15. OSI网络七层协议与TCPIP协议
  16. 北疆游记 - 照片在左边相册
  17. 微信开放平台基于网站应用授权登录源码(java)
  18. 恶意软件隐身术:把可执行文件隐藏在注册表里
  19. 复利java_复利计算1.0,2.0,3.0(java)
  20. 3ds运行linux,3ds自制操作软件

热门文章

  1. java bean配置文件_Spring中多配置文件及引用其他bean的方式
  2. 办公室自动化系统_信息化管理建设 公司办公室用自动盖章机贵吗?
  3. 振动力学基础与matlab应用_【日文好书推荐】振动与噪声控制技术for机械设计者...
  4. PHP SSL certificate: unable to get local issuer certificate的解决办法
  5. iOS12-crash错误-reason: 'UITableView failed to obtain a cell from its dataSource'
  6. Linux环境搭建 | 手把手教你安装Linux虚拟机
  7. SQLite与pandas
  8. 手把手教你搭建一个学习Python好看的 Jupyter 环境
  9. MVC+Ninject+三层架构+代码生成 -- 总结(四、數據層)
  10. topcoder srm 691 div1 -3