对称加密和非对称加密

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

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

图片描述

对称加密
对称密钥是双方使用相同的密钥 。
对称加密的要求
  (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) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,而后发送出去,接收方使用私钥进行解密获得对称加密的密钥,而后双方可使用对称加密来进行沟通。加密

相关文章
相关标签/搜索