对称加密与非对称加密

dargoner 8年前
   <p>想要在网络中传输数据,往往信息安全是首先要考虑的问题。一般来说,重要的信息在网络中传播都需要加密,接收方拿到信息之后需要解密。</p>    <p>加密/解密算法大致可以分为对称加密和非对称加密两类:</p>    <h2><strong>对称加密</strong></h2>    <h2><strong>定义</strong></h2>    <p>采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。</p>    <p>需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。</p>    <p>所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。</p>    <p>因此加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。</p>    <h2><strong>工作流程</strong></h2>    <p><img src="https://simg.open-open.com/show/247909e538c5d7802743f9343a8d073b.jpg"></p>    <p>举个例子来简要说明一下对称加密的工作过程。甲和乙是一对生意搭档,他们住在不同的城市。由于生意上的需要,他们经常会相互之间邮寄重要的货物。为了保证货物的安全,他们商定制作一个保险盒,将物品放入其中。他们打造了两把相同的钥匙分别保管,以便在收到包裹时用这个钥匙打开保险盒,以及在邮寄货物前用这把钥匙锁上保险盒。</p>    <p>上面是一个将重要资源安全传递到目的地的传统方式,只要甲乙小心保管好钥匙,那么就算有人得到保险盒,也无法打开。</p>    <p>这个思想被用到了现代计算机通信的信息加密中。在对称加密中,数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用加密密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密。</p>    <h2><strong>常用算法</strong></h2>    <p>在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等。</p>    <h2><strong>优缺点</strong></h2>    <ul>     <li> <p><strong>优点</strong> :算法公开、计算量小、加密速度快、加密效率高。</p> </li>     <li> <p><strong>缺点</strong> :在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。</p> </li>    </ul>    <h2><strong>非对称加密</strong></h2>    <h2><strong>定义</strong></h2>    <p>非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。</p>    <h2><strong>工作流程</strong></h2>    <p>甲乙之间使用非对称加密的方式完成了重要信息的安全传输。</p>    <ol>     <li>乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。</li>     <li>得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。</li>     <li>乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。<br> 在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。<br> 同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。</li>    </ol>    <h2><strong>常用算法</strong></h2>    <p>在非对称加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。</p>    <h2><strong>优缺点</strong></h2>    <ul>     <li> <p>优点:其安全性更好,非对称加密使用一对秘钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。</p> </li>     <li> <p>缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。</p> </li>    </ul>    <p> </p>    <p>来自:http://www.androidchina.net/5664.html</p>    <p> </p>