-
什么是非对称加密?非对称加密概念
2018-11-12 11:07:12什么是非对称加密 对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥) 与对称...什么是非对称加密
对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
工作原理/非对称加密
1、A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。
2、A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
3、A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。
4、A将这个消息发给B(已经用B的公钥加密消息)。
5、B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。
工作过程/非对称加密
如下图所示,甲乙之间使用非对称加密的方式完成了重要信息的安全传输。
1、乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。
2、得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。
3、乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。
在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。
同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。
优缺点/非对称加密
非对称加密与对称加密相比,其安全性更好:对称加密的通信双方使用相同的秘钥,如果一方的秘钥遭泄露,那么整个通信就会被破解。而非对称加密使用一对秘钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。
非对称加密的缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
在非对称加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。
不同算法的实现机制不同,可参考对应算法的详细资料。
转载于:http://www.elecfans.com/dianzichangshi/20171210599527.html
-
概念:对称加密与非对称加密
2020-03-18 18:31:34所谓对称和非对称,是指的加密与解密的操作是否存在对称性。 在对称加密中,加密与解密涉及到的是同一个工具(密钥),这样虽然方便,但万一这个工具被别人知道,通信就不再安全。非对称加密中,加密解密用的是不同...有A,B两个用户进行通信,为了使得双方通信的内容不被他人知道,A,B在发送内容时需要进行加密处理,在接受内容时需要解密。
所谓对称和非对称,是指的加密与解密的操作是否存在对称性。
在对称加密中,加密与解密涉及到的是同一个工具(密钥),这样虽然方便,但万一这个工具被别人知道,通信就不再安全。非对称加密中,加密解密用的是不同的工具,即公钥和私钥,公钥用来加密,私钥用来解密,公钥和私钥是配对的。例如:A有一个公钥A和一个私钥A,B有一个公钥B和私钥B,A,B通信时都会先将自己的公钥让对方知道,接下来,A发送信息给B时,先用公钥B给信息加密,这样B就可以在收到信息后用自己的私钥B解密,B给A发送信息时也是如此。注意,公钥私钥是严格配对的,A用公钥B加密后发给B的信息连A自己也无法解密,因为A没有B的私钥,私钥和公钥也几乎不可能通过数学方法相互推导得出。其实对称加密在某种程度上不能理解为“加密”,而应该理解为“秘密”。 用一个例子来说明:想象A,B通过书信来交流。在对称加密中,密钥可以认为是A,B都知道位置的一个邮筒,这个邮箱没有锁,只是位置比较隐蔽,A,B都可以打开。如果邮筒位置被别人知道了,那这个人也可以打开,所以安全性不高。而在非对称加密中,公钥可以认为是上了锁的邮筒A和邮筒B,它们的位置可能会像对称加密中那样被别人发现,但没有锁时邮筒无法被打开。A发送信息给B时,将信件放到邮筒B中,B用自己的私钥B就可以打开邮筒读取信件。这种“位置”和“锁”的双重保障提高了通信的安全性。
虽然非对称加密算法安全性高,但它也有明显的缺点。首先是其计算量需求较高,其次,使用非对称加密算法的每对用户都需要使用其他人不知道的独有秘钥,这会使得收发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。与之相比,对称加密算法速度快,效率高,这使得它并没有被非对称加密算法取代。
典型非对称加密算法的是RSA算法,它的数学原理是大素数的分解。
典型的对称加密算法有:DES(Data Encryption Standard)、TDEA(Triple Data Encryption Algorithm)、Blowfish、RC2、RC4、RC5等。 -
对称 非对称加密 RSA MD5 概念
2018-05-10 15:28:30一)对称加密(Symmetric Cryptography) 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛...一)对称加密(Symmetric Cryptography)
对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。
对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越慢。如果你只用1 bit来做这个密钥,那黑客们可以先试着用0来解密,不行的话就再用1解;但如果你的密钥有1 MB大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。密钥的大小既要照顾到安全性,也要照顾到效率,是一个trade-off。
2000年10月2日,美国国家标准与技术研究所(NIST--American National Institute of Standards and Technology)选择了Rijndael算法作为新的高级加密标准(AES--Advanced Encryption Standard)。.NET中包含了Rijndael算法,类名叫RijndaelManaged,下面举个例子。
加密过程:
private string myData = "hello"; private string myPassword = "OpenSesame"; private byte[] cipherText; private byte[] salt = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0 }; private void mnuSymmetricEncryption_Click(object sender, RoutedEventArgs e) { var key = new Rfc2898DeriveBytes(myPassword, salt); // Encrypt the data. var algorithm = new RijndaelManaged(); algorithm.Key = key.GetBytes(16); algorithm.IV = key.GetBytes(16); var sourceBytes = new System.Text.UnicodeEncoding().GetBytes(myData); using (var sourceStream = new MemoryStream(sourceBytes)) using (var destinationStream = new MemoryStream()) using (var crypto = new CryptoStream(sourceStream, algorithm.CreateEncryptor(), CryptoStreamMode.Read)) { moveBytes(crypto, destinationStream); cipherText = destinationStream.ToArray(); } MessageBox.Show(String.Format("Data:{0}{1}Encrypted and Encoded:{2}", myData, Environment.NewLine, Convert.ToBase64String(cipherText))); } private void moveBytes(Stream source, Stream dest) { byte[] bytes = new byte[2048]; var count = source.Read(bytes, 0, bytes.Length); while (0 != count) { dest.Write(bytes, 0, count); count = source.Read(bytes, 0, bytes.Length); } }
解密过程:
private void mnuSymmetricDecryption_Click(object sender, RoutedEventArgs e) { if (cipherText == null) { MessageBox.Show("Encrypt Data First!"); return; } var key = new Rfc2898DeriveBytes(myPassword, salt); // Try to decrypt, thus showing it can be round-tripped. var algorithm = new RijndaelManaged(); algorithm.Key = key.GetBytes(16); algorithm.IV = key.GetBytes(16); using (var sourceStream = new MemoryStream(cipherText)) using (var destinationStream = new MemoryStream()) using (var crypto = new CryptoStream(sourceStream, algorithm.CreateDecryptor(), CryptoStreamMode.Read)) { moveBytes(crypto, destinationStream); var decryptedBytes = destinationStream.ToArray(); var decryptedMessage = new UnicodeEncoding().GetString( decryptedBytes); MessageBox.Show(decryptedMessage); } }
对称加密的一大缺点是密钥的管理与分配,换句话说,如何把密钥发送到需要解密你的消息的人的手里是一个问题。在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。
(二)非对称加密(Asymmetric Cryptography)
非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人--银行才能对你的消息解密。与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。
目前最常用的非对称加密算法是RSA算法,是Rivest, Shamir, 和Adleman于1978年发明,他们那时都是在MIT。.NET中也有RSA算法,请看下面的例子:
加密过程:
private byte[] rsaCipherText; private void mnuAsymmetricEncryption_Click(object sender, RoutedEventArgs e) { var rsa = 1; // Encrypt the data. var cspParms = new CspParameters(rsa); cspParms.Flags = CspProviderFlags.UseMachineKeyStore; cspParms.KeyContainerName = "My Keys"; var algorithm = new RSACryptoServiceProvider(cspParms); var sourceBytes = new UnicodeEncoding().GetBytes(myData); rsaCipherText = algorithm.Encrypt(sourceBytes, true); MessageBox.Show(String.Format("Data: {0}{1}Encrypted and Encoded: {2}", myData, Environment.NewLine, Convert.ToBase64String(rsaCipherText))); }
解密过程:
private void mnuAsymmetricDecryption_Click(object sender, RoutedEventArgs e) { if(rsaCipherText==null) { MessageBox.Show("Encrypt First!"); return; } var rsa = 1; // decrypt the data. var cspParms = new CspParameters(rsa); cspParms.Flags = CspProviderFlags.UseMachineKeyStore; cspParms.KeyContainerName = "My Keys"; var algorithm = new RSACryptoServiceProvider(cspParms); var unencrypted = algorithm.Decrypt(rsaCipherText, true); MessageBox.Show(new UnicodeEncoding().GetString(unencrypted)); }
虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。为了解释这个过程,请看下面的例子:
(1) Alice需要在银行的网站做一笔交易,她的浏览器首先生成了一个随机数作为对称密钥。
(2) Alice的浏览器向银行的网站请求公钥。
(3) 银行将公钥发送给Alice。
(4) Alice的浏览器使用银行的公钥将自己的对称密钥加密。
(5) Alice的浏览器将加密后的对称密钥发送给银行。
(6) 银行使用私钥解密得到Alice浏览器的对称密钥。
(7) Alice与银行可以使用对称密钥来对沟通的内容进行加密与解密了。
(三)总结
(1) 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。
(2) 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。
(3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。
RSA是非对称加密算法,它支持数字签名(支付宝支付实现原理),MD5是一种消息摘要算法,MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。
-
非对称加密算法基本概念
2015-05-03 11:42:16只知道这个密钥对是用来做认证用的,但对为何要生成密钥对,密钥对是怎么生成的,密钥对如何使用等一些问题理解的比较模糊,密钥对的背后其实就是非对称加密算法,因此只要搞清楚非对称加密算法的基本概念就能解答...在使用github、ssh等工具时,需要生成密钥对,只知道这个密钥对是用来做认证用的,但对为何要生成密钥对,密钥对是怎么生成的,密钥对如何使用等一些问题理解的比较模糊,密钥对的背后其实就是非对称加密算法,因此只要搞清楚非对称加密算法的基本概念就能解答以上问题。
1 什么是非对称加密算法?
加密是指把明文转换成密文的过程,密钥是加密过程中的可变参数,加密算法可以分为对称加密算法和非对称加密算法两大类,加密和解密使用同一个密钥的算法为对称加密算法,加密和解密的过程使用不同的密钥称为非对称加密算法。非对称加密算法用来加密的密钥称为公钥,用来解密的密钥称为私钥,公钥是公开的,传输信息的一方可以用来对明文进行加密,密文只能由私钥进行解密,非对称加密主要基于运算的不可逆原理。
2 非对称加密算法的应用,公钥和私钥的作用?
非对称加密算法除了在加密上的用途,还可以用于数字签名,数字签名的过程是信息的发送方用私钥对信息进行加密,信息的接收方对收到的信息进行校验,因为私钥只有信息发送方拥有,所以如果用发送方的公钥校验通过就能够证明信息没有被篡改。
3 非对称加密算法的优势和劣势?
非对称加密算法的优势是不需要信息传递双方交换密钥,能够减少密钥在传输过程被盗取的风险,但非对称加密算法相比较对称加密算法速度上要慢很多倍。
4 常见的非对称加密算法
RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)
通过以上对非对称加密算法基本概念的整理,就能够理解为什么github、ssh需要用户生成密钥对并上传公钥到服务器,这样在客户端与服务器进行数据传输的过程中,服务器就可以通过用户上传的公钥对用户的信息进行校验,避免非法用户的存在,因此保管好自己的私钥很重要。 -
对称加密与非对称加密的区别_还对这两个概念认识模糊?简述对称加密和非对称加密...
2020-12-10 03:05:46对称加密对称加密(也叫私钥加密)——指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密... -
关于五个维度的刚性超对称和全纯概念
2020-03-25 01:08:30我们研究了在五个维度上控制刚性N = 1 $$ \ mathcal {N} = 1 $$超对称的方程。 如果超对称旋转子满足现实条件,则这些叶面将允许叶片上几乎复杂的结构族。 换句话说,所有这些流形都具有几乎是柯西-黎曼(CR)结构的... -
tp5.0在整lcobucci / jwt的时候引出的对称加密和非对称加密概念以及assert函数的作用
2020-12-10 00:49:314.Symmetric Algorithms:对称加密 对称加密的特征: 对称加密就是加密解密双方使用同一个密钥; 将数据切成块,然后再加密; 目前对称加密的方式有两种: ECB:Electronic CodeBook,each block is encrypted as... -
概念解释:分组密码、流密码、对称密码、非对称密码
2019-09-28 02:14:08按照密钥特征的不同,密码体制分为:对称密码体制和非对称密码体制。 按照对明文加密方式的不同,密码体制分为:流密码和分组密码。 非对称密码体制都是分组密码。 (1)流密码(又称序列密码),在流... -
半波对称振子方向图_天线的基本概念 对称振子 阻抗 方向性 带宽
2020-12-06 17:34:18对称振子两臂长度相等的振子叫做对称振子。每臂长度为四分之一波长。全长与波长相等的振子,称为全波对称振子。将振子折合起来的,称为折合振子。天线的输入阻抗天线和馈线的连接端,即馈电点两端感应的信号电压与... -
概念解释:对称加密、非对称加密、公钥、私钥、签名、证书
2020-06-28 09:10:17这些概念比较杂乱,容易混淆,下面就来梳理一下这部分的内容。 对称加密 在重要的信息的传递过程中,人们总是希望信息不会被偷看、不会被篡改,伪造等。为了达到这个要求人们一直在不断努力着。 电报加密使用的... -
通信安全 -- 对称加密与非对称加密的基本概念
2013-09-23 01:02:00以前我们还只是聊聊QQ,看看网页,通信安全似乎并不为人所重视,而现如今电子商务已经极为普及,我们在网上的生活也... 基本概念 明文就是我们真正想要通信的信息,这些信息要不就是人类可读的,要不就是有明显意... -
密码学常见基本概念-对称加密
2016-12-19 13:46:17对称加密: 对称加密也叫私钥加密,指加解密使用相同秘钥的加密算法。 数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文... -
[crypto]-aes/rsa/数字摘要hash对称加解密/非对称加解密概念详解
2020-06-14 17:55:491、对称加解密 术语:P是明文,C是密文,K是密钥,E是加密算法,D是解密算 (1)、常用的对称加解密有哪些? (2)、加解密的模式 【ecb】这种模式是将整个明文分成若干段相同的小段,然后对每一小段进行加密 ... -
关于RSA非对称加密相关概念整理
2017-04-23 22:12:40在企鹅和某团的面试过程中,都问到了非对称加密的相关问题,这里做个整理。 提起非对称加密,不管承认不承认,大多数人的第一反应肯定是RSA,它独特的质数分解思想让其破解的难度大大增加——我们都知道,两个数... -
加密 可逆加密 不可逆加密 对称加密 非对称加密 有损压缩 无损压缩 概念混淆
2019-11-27 16:36:50发现好多概念混淆了.因此梳理一下. 做一件事,要先理清概念,明白对象是谁,才好确定其特性. 加密:定义:与解密相对应. 进行一定操作,将数据保护起来,普通方法读取不到正常数据信息, 然后通过一定操作可以将加密数据进行... -
对称加密、单向加密和公钥加密的概念和联系
2020-02-04 16:45:27下文主要从加密算法的特征、常用加密算法和加密工具等方面,梳理和比较对称加密、单向加密和公钥加密的概念及其之间的联系。 对称加密 采用单钥密码的加密方法,同一个密钥可以同时用来加密和解密,这种加密方法... -
非对称加密 公钥 私钥 签名 数字证书概念
2020-10-30 15:06:13非对称加密 公钥 私钥 签名 签名验证 对“数据”哈希,生成消息摘要;摘要使用发送方私钥加密,生成签名; 接收方使用发送方公钥对签名解密,解密出摘要,,确认是发送方签名的,,接收方又将接收到文档数据(原文)... -
对称密钥密码系统和非对称密钥密码系统的基本概念
2015-03-09 15:31:30两种系统在概念上是不同的,这种不同基于这两种系统保存密钥方法的不同,在对称密钥密码系统中,密钥必须在两个人之间共享。在非对称密钥密码系统中,密钥是个人的(独享的),每个人都创建并保存自己的密钥。例如,... -
关于对称加密,非对称加密,以及哈希函数一些概念和作用(复习)
2019-09-03 18:50:09哈希函数又称为单向散列函数,任意长度经过哈希函数变成一个固定的值,且具有不可逆性。输入相同,输出一定相同,不同的输入数据想要获得相同的输出很难,概率很低。 可用作判断数据的完整性...对称机密算法:使用... -
https中相关的概念:明文、密文、密码、密钥、对称加密、非对称加密、摘要、数字签名、数字证书。
2017-03-02 14:16:59密码学在计算机科学中使用非常广泛,...在完全理解HTTPS之前,有必要弄清楚一些密码学相关的概念,比如:明文、密文、密码、密钥、对称加密、非对称加密、摘要、数字签名、数字证书。 密码(cipher) 密码学中的密码(c -
数据加密的术语以及对称加密、非对称加密、数字签名、数字证书的概念软考必会
2019-12-15 00:50:53数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文...加密方式分为对称加密和非对称加密。 对称加密 非对称加密 数字签名 数字证书 ... -
概念:简述对称密码算法和公钥密码算法的区别
2019-09-28 02:14:09(1)在对称密钥体制中,它的加密密钥和解密密钥的密码体制是相同的, 收发方共享密钥(即一个密钥) 对称密码的密钥是保密的,没有密钥,解密就不可能。 知道算法和若干密文不足以确定密钥。 (2)公钥... -
概念:明文、密文、密码、密钥、对称加密、非对称加密、摘要、数字签名、数字证书
2018-10-20 16:44:04理解HTTPS前需要理解这些概念:明文、密文、密码、密钥、对称加密、非对称加密、摘要、数字签名、数字证书 密码: 密码学中的密码(cipher)和我们日常生活中所说的密码不太一样,计算机术语『密码 cipher』是一种... -
信息安全:密码学概念与对称密码体制
2020-03-23 21:04:44著名密码: 对称密码:DES(1977年)->AES(2001年) 非对称密码:RSA(1978)->ECC(1985年) 其他对称:3DES、IDEA、BlowFish等 RC系列:RC2、RC4、RC5等 现代密码学的主要内容: 密码体制的基本组成及分类 一个密码... -
对称与非对称加密
2020-07-07 14:10:51对称加密算法概念 对称加密采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方式称为对称加密 ,也称为单密钥加密 二.非对称加密概念 非对称加密,又名“公开密钥加密算法”,... -
对称加密和非对称加密
2019-07-30 11:38:56对称加密和非对称加密 1 对称加密 1.1概念 加、解密使用的同是一串密钥,所以被称作对称加密。对称加密只有一个密钥作为私钥。常见的对称加密算法:DES、AES等。 1.2 优缺点 对称加密相比非对称加密算法来说... -
对称加密 非对称加密
2020-03-28 22:04:18对称加密 概念:加密方与解密方使用同一个密钥 优点: 加密速度比较快 缺点: 密钥在网络中传输可能会被拦截,导致加密内容被破解。 非对称加密 概念 密钥成对(公钥,私钥)存在,使用一个加密,使用另外一个解密,拥有... -
论文研究 - De Sitter-Hubble方程,狭义相对论中的力和对称性的一些概念
2020-05-28 01:12:11先前的工作[1] [2]提出了哈勃场的几个相关特征,例如强度ΓH,势VH,力... 它包括有关搜索物理,化学和时间对称性的一段。 结论中提到了最终的镜像,同时显示了哈勃望远镜和引力场的强度,以及相对不可能发生的大地震。