`

对公钥和私钥使用的理解

 
阅读更多

这些密码学的概念容易被搞混淆,的确也情有可原。因为公钥、私钥、加密、认证这些都是较为复杂的问题,其概念不太容易理解,理解不透就容易产生各种似是而非的概念,为了让大家对于密码学有进一步的了解,这里我就详细解说一下公钥和私钥的具体作用和使用方法。

  加密和认证

  首先我们需要区分加密和认证这两个基本概念。

   加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全 性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。两者的侧重点是不同的。

  公钥和私钥

  其次我们还要了解公钥和私钥的概念和作用。

  在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。

  公钥私钥的原则:

  1. 一个公钥对应一个私钥。
  2. 密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。
  3. 如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。
  4. 如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。

  非对称密钥密码的主要应用就是公钥加密和公钥认证,而公钥加密的过程和公钥认证的过程是不一样的,下面我就详细讲解一下两者的区别。

  基于公开密钥的加密过程

  比如有两个用户Alice和Bob,Alice想把一段明文通过双钥加密的技术发送给Bob,Bob有一对公钥和私钥,那么加密解密的过程如下:

  1. Bob将他的公开密钥传送给Alice。
  2. Alice用Bob的公开密钥加密她的消息,然后传送给Bob。
  3. Bob用他的私人密钥解密Alice的消息。

  上面的过程可以用下图表示,Alice使用Bob的公钥进行加密,Bob用自己的私钥进行解密。

基于公开密钥的加密过程

  基于公开密钥的认证过程

  身份认证和加密就不同了,主要用户鉴别用户的真伪。这里我们只要能够鉴别一个用户的私钥是正确的,就可以鉴别这个用户的真伪。

   还是Alice和Bob这两个用户,Alice想让Bob知道自己是真实的Alice,而不是假冒的,因此Alice只要使用公钥密码学对文件签名发送 给Bob,Bob使用Alice的公钥对文件进行解密,如果可以解密成功,则证明Alice的私钥是正确的,因而就完成了对Alice的身份鉴别。整个身 份认证的过程如下:

  1. Alice用她的私人密钥对文件加密,从而对文件签名。
  2. Alice将签名的文件传送给Bob。
  3. Bob用Alice的公钥解密文件,从而验证签名。

  上面的过程可以用下图表示,Alice使用自己的私钥加密,Bob用Alice的公钥进行解密。

基于公开密钥的认证过程

  总结

  好了,上面就详细讲述了加密、认证、公钥、私钥这四个概念,明白这些概念后,你就应该对“网站的安全登录认证设计 ”一文所讲述的概念有了更清晰的了解了。

分享到:
评论

相关推荐

    Java实现RSA生成公钥私钥

    Java实现,公钥私钥通过计算生产,没有调用API,可以更直观的理解RSA公钥私钥的生成 资源中包含源码、jar包。不管是不想造轮子还是想要学习的同学都适用 也可以根据需要改造代码

    JavaRSA生成公钥私钥加解密

    用java代码生成公钥私钥密钥对,公钥加密私钥解密,私钥加密公钥解密。直接导入idea,可直接运行。小编正在看区块链的多重加密,看到这儿了就写了一个demo,用于理解加解密。

    PHP通过OpenSSL生成证书、密钥并且加密解密数据,以及公钥,私钥和数字签名

    PHP通过OpenSSL生成证书、密钥并且加密解密数据,以及公钥,私钥和数字签名的理解 php代码简单生成 容易理解

    基于密码技术(对称与非对称)的身份认证

    内容概要:主要是是关于对称密码体制与非对称密码体制下的身份...深入理解公钥与私钥的使用3.用户之间传递信息的过程。 阅读建议:此资源主要是关于密码学,因此在阅读过程中易理解为主,动手画图更利于学习和掌握。

    yzh_PGP软件应用实验0512.doc

    A机器和B机器各自都生成一对加密和解密用的公钥和私钥文件,并分别保存好,文件名为张三加密公钥,张三解密私钥,密钥全名:张三加解密 Email地址:张三加解密@ncu.edu.cn A机器和B机器各自都生成另一对数字签名用...

    RSA加密解密签名加签验签RsaUtils工具类

    通俗理解:想象一个带锁的箱子,这个箱子有个特别之处,就是配有两个钥匙,一把“公钥”和一把“私钥”。任何人都可以用公钥把信息装进箱子里并锁上,但只有拥有私钥的人才能打开箱子取出里面的信息。所以,当你想给...

    基于私钥加密公钥解密的RSA算法C#实现方法

    本文实例讲述了基于私钥加密公钥解密的RSA算法C#实现方法,是一种应用十分...公钥和私钥都是两个大素数( 大于 100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。 密钥对

    DEncrypt加解密代码实现

    Encrypt(加密)是一种将数据转换为无法理解或解读的形式的过程。通过加密,可以保护数据的机密性,防止未经授权的访问者获得敏感信息。...非对称加密使用公钥和私钥进行加密和解密,安全性更高,但速度较慢。

    python项目基于RSA算法的数字签名生成软件.zip

    - 利用Python的RSA模块来生成公钥和私钥对,私钥用于对数据进行签名,而公钥用于验证签名的有效性。 2. **功能特点**: - 用户可以实现登录模块的安全认证。 - 提供数字签名的生成、修改和验证功能。 - 通过非对称...

    RSA加密_java实现

    RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的...RSA同时有两把钥匙,公钥与私钥。同时支持数字签名。数字签名的意义在于,对传输过来的数据进行校验。确保数据在传输工程中不被修改。

    基于.net的RSA私钥加密 公钥解密的源码(1018_).rar

    RSA算法 :它是第一个既能...它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。它经历了各种攻击,至今未被完全攻破。

    数字证书+tomcat

    单向认证:客户端向服务器发送消息,服务器接到消息后,用服务器端的密钥库中的私钥对数据进行加密,然后把加密后的数据和服务器端的公钥一起发送到 客户端,客户端用服务器发送来的公钥对数据解密,然后在用传到...

    非对称加密&&RAS算法学习经验

    非对称加密 指的是 传输信息时 拥有公钥/私钥,公钥加密的信息只能使用私钥解密,私钥加密的信息只有公钥能解密~ 仅此而已; 但这是错误的,这是非对称加密的必要条件;但不是充分必要条件; 现阶段我认为的非对称加密 在...

    电力基础知识:电力二次系统安全防护体系

    然后通过纵向加密装置来创建vpn隧道传输实时及非实时的业务数据用的,因为一旦业务数据经过加密(目前常用的算法有两种,rsa和sm2)黑客即便获取了报文也不能破解,因为隧道两端的加解密公钥和私钥是一一对应的,...

    DES加密算法精讲课件

    可以帮助您更好的理解DES和RAS加密算法,和使用。 DES 是一种单一密钥加解密算法。通信主体之间只有一个密钥,该密钥不对第三方公开。 RSA 则是公钥/私钥系统。该系统比 DES 系统更原子化,具有普遍应用意义。

    FastDFS分布式文件系统.docx

    3、授权中心 (非对称加密(公钥私钥),JWT) 4、分布式事务 5、分布式锁(控制秒杀库存) 6、搜索 7、项目架构优化 1.认识海量文件存储、架构、性能瓶颈 2.能够理解互联网环境中文件服务器选型 3.能够理解...

    Javascript逆向分析+Cookie加密+补环境+逆向学习

    对称加密使用相同的密钥进行加密和解密,而非对称加密使用公钥进行加密和私钥进行解密。选择合适的加密算法和密钥管理方式对数据的安全性至关重要,同时也需要考虑到性能和可维护性。 构建逆向分析和学习的环境时,...

    ECC椭圆曲线签名方案的实现

    本次课题要求基于椭圆曲线算法,实现对消息签名的方案,要求密钥长度至少160...3.生成并显示公私钥对,利用私钥对消息生成签名,利用公钥对签名进行验证,以判定签名的合法性; 4.程序具有图形化用户界面,输出美观;

    信息安全概论课后习题答案总结(华南理工大学出版社)

    计算题部分要求考生运用特定的加密解密算法进行实际计算,比如使用Vigenere方案解密密文,求解RSA系统中的私钥,以及根据RSA公钥和密文求解明文等。这部分内容考察了考生对加密解密算法的理解和应用能力。

    PHP基于mcript扩展实现对称加密功能示例

    1.对称加密主要利用相同的密钥来实现,而非对称加密利用公钥和私钥来加密,比较而言对称加密速度快,但是安全性要低 为什么使用base64_encode(),主要是用于传参,直接加密完成后不是我们能理解的字符串,也就是大家...

Global site tag (gtag.js) - Google Analytics