轻松理解非对称加密

作者: CoderAO | 来源:发表于2015-08-16 19:51 被阅读2513次

    一直以来,"对称加密"、"非对称加密"、"公钥"、"私钥"等这些词汇对我来说都是最熟悉的陌生词, 听着熟悉但是从未理解其中要义. 最近又搞了搞证书相关的东西, 出于学习需要,索性就把这些东西理解了一下.本文不说算法也没有具体的加密方法,只是帮和我一样有困惑的小伙伴通俗易懂地理解几个概念.

    非对称加密是相对于对称加密而言的.

    首先, 不论哪种方式的加密,目的都是保护被加密内容.

    对称加密

    先看百度的解释:

    采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

    怎么理解呢?举个栗子.

    小红新建了一个文档只想自己和小明看,于是小红为这个文档设置了密码(加密), 然后再发送给小明. 小明只要知道文档的密码就可以查看其中内容(解密).别人即使拿到文档想看,但没有密码(密钥)也无从查看里面的内容.

    所谓对称就是加密和解密的过程使用的是相同的密钥.

    非对称加密

    与对称加密不同,非对称加密算法的加密和解密使用不同的两个密钥.这两个密钥就是我们经常听到的"公开密钥"(公钥)和"私有密钥"(私钥).

    公钥和私钥的关系是:
    公钥和私钥一般成对出现,

    如果你的消息使用公钥加密,那么需要该公钥对应的私钥才能解密;

    如果你的消息使用私钥加密,那么需要该私钥对应的公钥才能解密.

    非对称加密的作用是:保护消息内容, 并且让消息接收方确定发送方的身份.

    再举个栗子

    小红和小明互发邮件,并且邮件内容需要保密.

    如果是对称加密,小明需要把唯一的密钥告知小红,小红使用该密钥进行解密即可查看邮件内容.但这样做, 一旦在传输密钥的过程中消息泄露, 保密性也就荡然无存.

    很显然对称加密的安全性会低一些, 于是他们采用决定非对称加密的方式, 这样, 小明和小红就需要各自持有一对属于自己的公钥和私钥.

    小明写的邮件只想让小红看, 那么小红有什么和别人不一样的特质呢? 没错, 她拥有一个只有她自己知道的密钥! 如果小明使用小红的公钥加密(公钥是公开给别人的), 那么就只有小红的私钥才能解密,这就达到了只让小红看的目的.(保护消息内容)

    但是还有一个问题.既然小红的公钥是公开的,那么就可能产生有不明身份的人冒充小明, 使用小红的公钥加密然后给小红发邮件.

    小明为了避免这种情况的发生,把邮件内容用自己的密钥进行加密,小红接收到邮件后,使用小明的公钥解密(只有小明公钥才能解开使用小明私钥加密的消息),如果可以解开,那么她就知道这个邮件的的确确是小明发的.(确定消息发送方的身份)

    我简单画了一个图来表示这个过程:


    小明发邮件小红接收的过程

    .

    小刚对邮件进行截获

    当我们想将写好的iOS程序运行到真机上(你的真机/测试人员的测试机/从App Store上下载应用的用户的手机等)时,很多地方会使用这种非对称加密的方式进行数字签名或者身份认证,从而保证程序的来源可信并且安全.

    这篇文章只是简单对非对称加密做一些理解,后面我会另起文章对代码签名及数字证书等原理及过程进行阐述.

    内容比较抽象, 也不知道我描述清楚了没有,如果没有的话欢迎大家提出意见和指正.

    相关文章

      网友评论

      • 布鲁克林有棵树_0e2c:写的很清晰,一下子就看明白了。
      • 5e90222542ed:清晰易懂!
      • mafu1986:思路清晰
      • 小包包包:写的通俗易懂
      • ONE2:例子用的很好!
      • xiesj88:小红是谁
      • 小凡凡520:小红私钥 小明怎么知道
        CoderAO:@小凡凡520 不是随便的私钥,你用谁的公钥加密,就只能用谁的私钥揭秘。
        小凡凡520:@CoderAO 那怎么一个随便的私钥就可以解密加密的内容呢?
        CoderAO:@小凡凡520 小明不知道啊
      • 编程的蚂蚁: :clap: 哈哈,真生动形象,读了此文彻底就弄明白了对称加密和非对称加密区别和联系
      • 9bfe700d122a:我现在也不干别的了 我觉得你写的东西都是干货,就学习了 还上啥班啊
        :+1:
      • 9bfe700d122a:哈哈哈哈哈 爱死小明和小红了 瞬间明白了 ,说的非常清晰 ,你的思路这么清晰 !!!!! :pray:

      本文标题:轻松理解非对称加密

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