对称加密耗时
㈠ 什么是对称加密什么是非对称加密
对称加密
在对称加密(或叫单密钥加密)中,只有一个密钥用来加密和解密信息。尽管单密钥加密是一个简单的过程,但是双方都必须完全的相信对方,并都持有这个密钥的备份。但要达到这种信任的级别并不是想像中的那么简单。当双方试图建立信任关系时可能一个安全破坏已经发生了。首先密钥的传输就是一个重要问题,如果它被截取,那么这个密钥以及相关的重要信息就没有什么安全可言了。
但是,如果用户要在公共介质 (如互联网) 上传递信息,他需要一种方法来传递密钥,当然物理的发送和接收密钥是最安全的,但有时这是不可能的。一种解决方法就是通过电子邮件来发送,但这样的信息很容易的被截取到,从而击破了加密的目的。用户不能加密包含密钥的邮件,因为他们必须共享另一个用来加密含有密钥邮件的密钥。这种困境就产生了问题:如果对称密钥用它们自己来加密,那为什么不直接用相同的方法在第一步就使用?一个解决方案就是用非对称加密,我们将在本课的后面提到。
所有类型加密的一个主题就是破解。一种减少使用对称加密所造成的威胁的反措施就是改变密钥的规律性。然而,定期改变密钥经常是困难的,尤其是你的公司里有很多用户。另外,黑客可以使用字典程序,password sniffing来危及对称密钥的安全,或者通过搜翻办公桌,钱包以及公文包。对称加密也很容易被暴力攻击的手段击败。
非对称加密
非对称加密在加密的过程中使用一对密钥,而不像对称加密只使用一个单独的密钥。一对密钥中一个用于加密,另一个用来解密。如用A加密,则用B解密;如果用B加密,则要用A解密。
重要的概念是在这对密钥中一个密钥用来公用,另一个作为私有的密钥;用来向外公布的叫做公钥,另一半需要安全保护的是私钥。非对称加密的一个缺点就是加密的速度非常慢,因为需要强烈的数学运算程序。如果一个用户需要使用非对称加密,那么即使比较少量的信息可以也要花上几个小时的时间。
非对称加密的另一个名称叫公钥加密。尽管私钥和公钥都有与数学相关的,但从公钥中确定私钥的值是非常困难的并且也是非常耗时的。在互联网上通信,非对称加密的密钥管理是容易的因为公钥可以任易的传播,私钥必须在用户手中小心保护。
HASH加密把一些不同长度的信息转化成杂乱的128位的编码里,叫做HASH值。HASH加密用于不想对信息解密或读取。使用这种方法解密在理论上是不可能的,是通过比较两上实体的值是否一样而不用告之其它信息。HASH加密别一种用途是签名文件。它还可用于当你想让别人检查但不能复制信息的时候。
㈡ 加密技术中,对称加密和不对称加密的最大区别
加密的算法可以分为对称加密和不对称加密.在对称加密算法中,一个密钥被用来进行信息交换得两方共享.发送方利用私钥的拷贝来加密数据.在接收方,利用同样的私钥的拷贝来解密数据.绝大多数的加密,如基于共享密码和共享安全标识都是对称加密的例子.
在这种类型的系统中,一个中心的服务器分发共享的密钥给需要安全交互的使用者.对称加密的缺点是共享密钥的管理,分发和保护它们的安全性,特别是在象internet这样的公网上.
为了克服在公共网络中管理密钥的的难度,使用成对的密钥来取代单一的密钥.在不对称加密算法中,双方都互相拥有一个私钥和一个公钥.
公钥是利用一种不可逆的方法对私钥进行操作后产生的,因此一旦两者中的一种用来加密数据,另外一种就可以用来解密.另外,不可由公钥来推测出私钥,而且只有用私钥来解密用公钥加密的数据.当发送异步加密的报文时,发送者利用接收者的公钥加密报文,确保只有接收者可以利用他的私钥来解密报文.如果你用另外一种方式来处理,任何人都可利用可利用的公钥来解密报文.不对称加密是PKI的基础,pki是x.509安全标准的基础.不对称加密算法是一种典型基于对大数处理的算法,如指数合对数运算.它比对称加密算法需要更多的cpu时间来进行加密和解密.,因为这个原因,不对称加密经常用来安全的传送一个对称的”会话”密钥,用来加密交互的剩余部分,这也只是在信息交换的持续周期内有效.
因为公钥可以很容易的获得,使用公钥进行加密减轻了分发和管理密钥的难度.不幸的是,这种方便性的代价是不对称加密算法通常比对称加密算法慢几个数量级.由于此,不对称加密方法只用来处理比较小的数据.例如安全密钥和标识以及数字签名.
公钥加密(不对称加密)、私钥加密(对称加密)
公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。公钥和私钥都在数学上相关联;用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。公钥可以提供给任何人;公钥用于对要发送到私钥持有者的数据进行加密。两个密钥对于通信会话都是唯一的。公钥加密算法也称为不对称算法,原因是需要用一个密钥加密数据而需要用另一个密钥来解密数据。
公钥加密算法使用固定的缓冲区大小,而私钥加密算法使用长度可变的缓冲区。公钥算法无法像私钥算法那样将数据链接起来成为流,原因是它只可以加密少量数据。因此,不对称操作不使用与对称操作相同的流模型。
双方(小红和小明)可以按照下列方式使用公钥加密。首先,小红生成一个公钥/私钥对。如果小明想要给小红发送一条加密的消息,他将向她索要她的公钥。小红通过不安全的网络将她的公钥发送给小明,小明接着使用该密钥加密消息。(如果小明在不安全的信道如公共网络上收到小红的密钥,则小明必须同小红验证他具有她的公钥的正确副本。)小明将加密的消息发送给小红,而小红使用她的私钥解密该消息。
但是,在传输小红的公钥期间,未经授权的代理可能截获该密钥。而且,同一代理可能截获来自小明的加密消息。但是,该代理无法用公钥解密该消息。该消息只能用小红的私钥解密,而该私钥没有被传输。小红不使用她的私钥加密给小明的答复消息,原因是任何具有公钥的人都可以解密该消息。如果小红想要将消息发送回小明,她将向小明索要他的公钥并使用该公钥加密她的消息。然后,小明使用与他相关联的私钥来解密该消息。
在一个实际方案中,A和B使用公钥(不对称)加密来传输私(对称)钥,而对他们的会话的其余部分使用私钥加密。
公钥加密具有更大的密钥空间(或密钥的可能值范围),因此不大容易受到对每个可能密钥都进行尝试的穷举攻击。由于不必保护公钥,因此它易于分发。公钥算法可用于创建数字签名以验证数据发送方的身份。但是,公钥算法非常慢(与私钥算法相比),不适合用来加密大量数据。公钥算法仅对传输很少量的数据有用。公钥加密通常用于加密一个私钥算法将要使用的密钥和 IV。传输密钥和 IV 后,会话的其余部分将使用私钥加密。
.NET 通过抽象基类 (System.Security.Crytography.AsymmetricAlgorithm) 提供下列非对称(公钥/私钥)加密算法:
• DSACryptoServiceProvider
• RSACryptoServiceProvider
私钥加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保护密钥不被未经授权的代理得到。私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。私钥加密算法非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。
通常,私钥算法(称为块密码)用于一次加密一个数据块。块密码(如 RC2、DES、TripleDES 和 Rijndael)通过加密将 n 字节的输入块转换为加密字节的输出块。如果要加密或解密字节序列,必须逐块进行。由于 n 很小(对于 RC2、DES 和 TripleDES,n = 8 字节;n = 16 [默认值];n = 24;对于 Rijndael,n = 32),因此必须对大于 n 的数据值一次加密一个块。
基类库中提供的块密码类使用称作密码块链 (CBC) 的链模式,它使用一个密钥和一个初始化向量 (IV) 对数据执行加密转换。对于给定的私钥 k,一个不使用初始化向量的简单块密码将把相同的明文输入块加密为同样的密文输出块。如果在明文流中有重复的块,那么在密文流中将存在重复的块。如果未经授权的用户知道有关明文块的结构的任何信息,就可以使用这些信息解密已知的密文块并有可能发现您的密钥。若要克服这个问题,可将上一个块中的信息混合到加密下一个块的过程中。这样,两个相同的明文块的输出就会不同。由于该技术使用上一个块加密下一个块,因此使用了一个 IV 来加密数据的第一个块。使用该系统,未经授权的用户有可能知道的公共消息标头将无法用于对密钥进行反向工程。
可以危及用此类型密码加密的数据的一个方法是,对每个可能的密钥执行穷举搜索。根据用于执行加密的密钥大小,即使使用最快的计算机执行这种搜索,也极其耗时,因此难以实施。使用较大的密钥大小将使解密更加困难。虽然从理论上说加密不会使对手无法检索加密的数据,但这确实极大增加了这样做的成本。如果执行彻底搜索来检索只在几天内有意义的数据需要花费三个月的时间,那么穷举搜索的方法是不实用的。
私钥加密的缺点是它假定双方已就密钥和 IV 达成协议,并且互相传达了密钥和 IV 的值。并且,密钥必须对未经授权的用户保密。由于存在这些问题,私钥加密通常与公钥加密一起使用,来秘密地传达密钥和 IV 的值。
.NET 提供以下实现类以提供对称的密钥加密算法:
• DESCryptoServiceProvider
• RC2CryptoServiceProvider
• RijndaelManaged
•
㈢ DES和AES算法的比较,各自优缺点有哪些
一、数据加密标准不同
1、DES算法的入口参数有三个:Key、Data、Mode。
其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。
2、AES的基本要求是,采用对称分组密码体制,密钥的长度最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。
因此AES的密钥长度比DES大, 它也可设定为32比特的任意倍数,最小值为128比特,最大值为256 比特,所以用穷举法是不可能破解的。
二、运行速度不同
1、作为分组密码,DES的加密单位仅有64位二进制,这对于数据传输来说太小,因为每个分组仅含8个字符,而且其中某些位还要用于奇偶校验或其他通讯开销。处理速度慢、加密耗时
2、AES对内存的需求非常低,运算速度快,在有反馈模式、无反馈模式的软硬件中,Rijndael都表现出非常好的性能。
三、适用范围不同
1、数据加密标准,速度较快,适用于加密大量数据的场合。DES在安全上是脆弱的,但由于快速DES芯片的大量生产,使得DES仍能暂时继续使用,为提高安全强度,通常使用独立密钥的三级DES
2、AES 适用于8位的小型单片机或者普通的32位微处理器,并且适合用专门的硬件实现,硬件实现能够使其吞吐量(每秒可以到达的加密/解密bit数)达到十亿量级。同样,其也适用于RFID系统。
㈣ 非对称加密和对称加密的区别
非对称加密和对称加密在加密和解密过程、加密解密速度、传输的安全性上都有所不同,具体介绍如下:
1、加密和解密过程不同
对称加密过程和解密过程使用的同一个密钥,加密过程相当于用原文+密钥可以传输出密文,同时解密过程用密文-密钥可以推导出原文。但非对称加密采用了两个密钥,一般使用公钥进行加密,使用私钥进行解密。
2、加密解密速度不同
对称加密解密的速度比较快,适合数据比较长时的使用。非对称加密和解密花费的时间长、速度相对较慢,只适合对少量数据的使用。
3、传输的安全性不同
对称加密的过程中无法确保密钥被安全传递,密文在传输过程中是可能被第三方截获的,如果密码本也被第三方截获,则传输的密码信息将被第三方破获,安全性相对较低。
非对称加密算法中私钥是基于不同的算法生成不同的随机数,私钥通过一定的加密算法推导出公钥,但私钥到公钥的推导过程是单向的,也就是说公钥无法反推导出私钥。所以安全性较高。
㈤ 对称加密和非对称加密的速度区别
对称加密加密速度比非对称加密快,对称加密密钥不能公开而非对称的私钥必须保密公钥可以公开,关于管理和发布对称加密比较复杂,关于算法对称加密通常用DES,AES,IDEA。非对称用RSA,呵呵