美文网首页区块链研习社区块链大学区块链
《锋哥论道区块链》之三区块链基础--对称秘钥与非对称秘钥

《锋哥论道区块链》之三区块链基础--对称秘钥与非对称秘钥

作者: 7dfc697cf7a9 | 来源:发表于2019-04-15 08:08 被阅读2次

    1.【基本概念】--非对称密码解决了电子货币所有权问题。
    北京的Bob发了一个快递到广州的Alice,途中经过了上海,上海快递中心出现了一个黑客H,他偷偷打开了Bob给Alice的快递,然后偷偷把里边的衣服剪烂,再按照原样包装好发往广州,可以看到对于这样简单包装的传输在中途是可以偷偷修改里边的东西。
    HTTP的数据包是明文传输,如果中途某个黑客嗅探到这个HTTP包,他可以偷偷修改里边包的内容,至于Bob跟Alice是互相不知道这个动作的,因此我们必须要有一个方案来防止这种不安全的篡改行为,有个方法就是加密!
    (1)对称加密
    采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密。所谓对称就是加密和解密的过程使用的是相同的密钥.
    例如A用户新建了一个文档只想自己和B用户看,于是A为这个文档设置了密码(加密), 然后再发送给B.用户 B只要知道文档的密码就可以查看其中内容(解密).别人即使拿到文档想看,但没有密码(密钥)也无从查看里面的内容.
    当然对称加密也存在严重的秘钥泄露问题,上例中用户A必须通过某种方式(打电话、邮件等)告诉用户B密码,但这个过程中密码就可能泄露。
    (2)非对称加密
    最早在1976年由美国学者Dime和Henman提出。他们为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。
    与对称加密不同,非对称加密算法的加密和解密使用不同的两个密钥.这两个密钥就是我们经常听到的"公开密钥"(公钥)和"私有密钥"(私钥).
    公钥和私钥的关系是:
    (1)公钥和私钥成对出现,
    (2)如果你的消息使用公钥加密,那么需要该公钥对应的私钥才能解密;
    (3)如果你的消息使用私钥加密,那么需要该私钥对应的公钥才能解密.
    例如:用户A和用户B互发邮件,并且邮件内容需要保密.用户A和用户B采用非对称加密方式,这样用户A和用户B都各自有一把公钥和一把私钥。并且用户A和用户B可以通过公开的方式告知对方自己的公钥,各自的私钥都保存在自己的手中,不让外人知道。当用户A给用户B发信息时,可以用用户B的公钥加密邮件内容发送给B,用户B用自己的私钥解密邮件,就可以看到邮件内容了。当然,用户B给用户A发送消息,用用户A的公钥加密邮件内容,用户A用自己的私钥就可以解密邮件。这个过程中私钥都在自己的手里,可以有效的避免泄露。
    2.【非对称加密案例】
    在非对称加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。为了更加具体形象的理解公私钥,我们接下来通过一个案例来描述,以RSA为例。
    假设信息传递的双方是A和B。假设B想让A传递加密信息给自己,就是A传递信息给B。使用非对称加密方式为RSA。步骤如下:
    (一)登录可以生成非对称秘钥的网址
    http://web.chacuo.net/netrsakeypair
    (二)选择RSA密钥对,如图点“生成密钥对”,密钥的长度选4096,密钥长度越长,破解难度就越高。点完之后,分别把下面两个大文本框内的公开密钥(第一个方框内的全部内容,图上公钥1)和私有密钥(第二个方框的全部内容,图上私钥1)拷贝或者保存到一个稳妥的地方。

    11.png
    (三)B把公钥1(上图中的简称公钥1)用任何方式(邮件,QQ,微信)发给A。
    (四)A拿到了公钥1之后,就可以把自己想给B的信息,来进行加密了。点击左侧RSA公钥加密解密,复制从B处得到的公钥1的内容,添加需要加密给B的文本内容,点击最后的RSA公钥加密,生成加密文本。
    12.png
    (五)A把加密完后生成的加密文本,用公开途径发给B,A的情报传递工作就完成了。
    解密流程:B如何解密A的情报内容呢?请看下面的操作。
    (六)点击左侧RSA私钥加密解密B首先把最早生成保存好的私钥1复制到第一个方框内,然后把A公开发过来的加密后文本复制到第二个方框内,点击RSA私钥解密,最后生成了A加密的文字内容:
    13.png

    相关文章

      网友评论

        本文标题:《锋哥论道区块链》之三区块链基础--对称秘钥与非对称秘钥

        本文链接:https://www.haomeiwen.com/subject/vyrywqtx.html