公钥和私钥的原理

      今天上课老师讲到公钥和秘钥,模模糊糊听了个大概,始终还是不能够详细的理解公钥怎么会事?私钥怎么会事?工作原理是怎么的?今天在网上找了半天,通过查看大家对这个密钥对的理解,总算弄清楚了,咱就把我的心得写出来给大家对密钥对有疑问的同志们看看。
      公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。我用电子邮件的方式说明一下原理。
      使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:
      1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。
      2. 必须保证是我发送的邮件,不是别人冒充我的。

       3. 要达到这样的目标必须发送邮件的两人都有公钥和私钥。

  公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能用公钥解密。
  比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。
  首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。
  其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。
  当A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解开,否则普罗大众都能解开加密的讯息,就是去了资料的保密性。验证方面则是使用签验章的机制,A传资料给大家时,会以自己的私钥做签章,如此所有收到讯息的人都可以用A的公钥进行验章,便可确认讯息是由 A 发出来的了


一、公钥加密

  假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。

我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用
数字2,就是我的私钥,来解密。这样我就可以保护数据了。

我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷到了这个文件,但是别人解不开,因为别人不知道2就是我的私钥,
只有我才能解密,解密后就得到a。这样,我们就可以传送加密的数据了。


二、私钥解密


  如果我用私钥加密一段数据(当然只有我可以用私钥加密,因为只有我知道2是我的私钥),结果所有的人都看到我的内容了,因为他们都知
道我的公钥是1,那么这种加密有什么用处呢?

  但是我的好朋友x说有人冒充我给他发信。怎么办呢?我把我要发的信,内容是c,用我的私钥2,加密,加密后的内容是d,发给x,再告诉他
解密看是不是c。他用我的公钥1解密,发现果然是c。
这个时候,他会想到,能够用我的公钥解密的数据,必然是用我的私钥加的密。只有我知道我得私钥,因此他就可以确认确实是我发的东西。
这样我们就能确认发送方身份了。这个过程叫做数字签名。当然具体的过程要稍微复杂一些。用私钥来加密数据,用途就是数字签名。

 

总结:公钥和私钥是成对的,它们互相解密。

公钥加密,私钥解密。

私钥数字签名,公钥验证。

 

原创文章,作者:李书鹏,如若转载,请注明出处:http://www.178linux.com/61714

(1)
李书鹏李书鹏
上一篇 2016-11-30
下一篇 2016-12-01

相关推荐

  • Linux 内存管理

    1.Linux 进程在内存数据结构      可以看到一个可执行程序在存储(没有调入内存)时分为代码段,数据段,未初始化数据段三部分:      1) 代码段:存放CPU执行的机器指令。通常代码区是共享的,即其它执行程序可调用它。假如机器中有数个进程运行相同的一个程序,那么它们就…

    Linux干货 2015-04-13
  • Linux文本处理工具之grep

    简介     grep:Global search regular expression and print out the line.     grep是一种文本搜索处理工具,根据用户指定的文本模式或搜索条件对目标文件进行逐行搜索,并显示能匹配到的行。   …

    Linux干货 2015-05-12
  • 磁盘文件挂载与卸载

    挂载(mount)何为挂载?挂载指将文件系统与根文件系统的某个现存的目录建立起来的关联关系,这样我们就可以将目录作为访问磁盘文件的入口,进行存取交互。挂载点:挂载点指的是被挂载的对象,通常挂载点是一个目录,不过有时候也有文件作为挂载点格式:mount 设备 挂载点 ;此挂载方法味临时挂载,只在当前的shell中有效,退出则清除挂载关联设备文件在/dev/sd…

    Linux干货 2017-04-24
  • 人志建,则无敌—磁盘、LVM2和简单脚本练习

    马哥网络班21期-第七周博客 1、创建一个10G分区,并格式为ext4文件系统;  disk /dev/sdb         Command (m for help): n    &nbs…

    Linux干货 2016-08-19
  • hello 北京&Linux启程

    北京初感&Linux启程

    Linux干货 2018-03-26
  • 马哥教育网络班21期+第10周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) POST –>Boot Sequence(BIOS) –> Boot Loader(MBR) –> Kernel(ramdisk) –>rootfs –>…

    Linux干货 2016-09-19

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-27 15:11

    写的不错,浅显易懂,继续努力