`
ceasarje
  • 浏览: 78725 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

<转>公钥,私钥和数字签名

 
阅读更多

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

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

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




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

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



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

公钥加密,私钥解密。

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



举例

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

1.Bob将他的公开密钥传送给Alice。
2.Alice用Bob的公开密钥加密她的消息,然后传送给Bob。
3.Bob用他的私人密钥解密Alice的消息。
  上面的过程可以用下图表示,Alice使用Bob的公钥进行加密,Bob用自己的私钥进行解密。
  • 大小: 20.1 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    公钥私钥加密解密数字证书数字签名详解.docx

    ### 公钥私钥加密解密、数字证书与数字签名详解 #### 一、基础知识概述 在探讨公钥私钥加密解密、数字证书以及数字签名之前,我们需要先理解几个核心概念。 **1. 密钥对:** - 在非对称加密技术中,存在两种密钥...

    RSA生成公钥私钥和使用公钥私钥加密解密demo

    本示例提供了一个RSA加密工具类,用于生成公钥和私钥,并使用它们进行加密和解密操作,这对于保护数据库中的敏感信息,如密码,是非常必要的。 1. **RSA算法原理**: RSA算法基于数论中的大数因子分解难题。其基本...

    数字证书原理,公钥私钥加密原理

    数字证书和公钥私钥加密是当今网络安全中的基础元素。它们在保护数据传输、验证身份、以及确保信息交流的完整性和机密性方面发挥着关键作用。以下是对数字证书原理和公钥私钥加密原理的详细解读。 数字证书是一种...

    密码学总结_公钥_私钥_数字签名_数字证书完全解析

    "密码学总结_公钥_私钥_数字签名_数字证书完全解析" ...这篇文章为读者提供了密码学的基础概念,包括单钥加密、私钥加密、公钥、私钥、数字签名和数字证书等,并且介绍了数字签名和数字证书的应用。

    通过RSA证书提取XML/PEM公钥私钥

    RSA是一种非对称加密算法,广泛应用于网络安全领域,如数据加密、数字签名和密钥交换。在本场景中,我们关注的是如何从RSA.PFX证书中提取XML或PEM格式的公钥和私钥。 PFX(Personal Information Exchange)文件是...

    公钥加密,数字签名,公钥认证,认证授权,基于 PKI 授权.zip

    总之,公钥加密、数字签名、公钥认证和基于PKI的授权是构建安全网络环境的关键技术,它们在保障数据隐私、防止欺诈和确保通信安全方面发挥着至关重要的作用。理解并掌握这些概念和技术对于任何涉及网络通信安全的...

    Java实现RSA生成公钥私钥

    RSA算法是一种非对称加密算法,它在信息安全领域有着广泛的应用,例如数字签名、数据加密等。在Java中实现RSA公钥和私钥的生成,通常我们会使用Java Cryptography Extension (JCE) 提供的API,如`java.security....

    公钥和私钥

    - **私钥**:用于解密由公钥加密的数据,同时也可用于数字签名,验证数据的完整性和来源。 #### 加密与认证的区别 在理解公钥和私钥的作用之前,首先需要区分加密和认证这两个基本概念: - **加密**:主要用于...

    公钥和私钥的输入程序

    公钥和私钥是一种非对称加密技术的基础,广泛应用于数据传输、数字签名和身份验证等场景。RSA是一种著名的公钥加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,它依赖于大数因子分解的困难性来...

    C++实现RSA公钥私钥加密算法

    RSA算法是一种非对称加密算法,它在信息...综上所述,C++实现RSA公钥私钥加密算法涉及了大数运算、素数检测、欧拉函数、模逆运算等多个数学和密码学概念。理解并实现这一算法有助于深入理解信息安全基础和加密技术。

    Java SE 6中 XML 数字签名的标准 Java 接口介绍

    与传统的数字签名一样,XML数字签名也使用公钥加密机制,但它是专门为XML文档设计的。 #### 四、XML数字签名的特点 - **灵活性**:支持多种类型的XML文档和结构。 - **可扩展性**:可以与现有的XML技术(如XPath、...

    C# RSA加密、支持JAVA格式公钥私钥

    RSA算法是一种非对称加密算法,它在信息安全领域有着广泛的应用,特别是在网络通信中的数据加密和数字签名。C#和Java作为两种常见的编程语言,都提供了实现RSA算法的库和接口。这个压缩包中的内容看起来是针对C#环境...

    JavaRSA生成公钥私钥加解密

    在实际应用中,需要注意的是,RSA加解密效率相对较低,适合加密少量数据,如密钥交换或数字签名。对于大量数据的加密,通常会采用对称加密(如AES)配合RSA进行密钥交换,以提高性能。同时,公钥和私钥的保护至关...

    获取RSA公钥+私钥

    由于公钥是公开的,所以它可以安全地分发给任何需要加密数据的人,而私钥则需要保密,因为它用于解密数据或验证数字签名。这样的机制确保了只有拥有私钥的一方才能解密由公钥加密的信息,从而保护了数据的安全性。

    c#公钥加密私钥解密和验证

    在C#中,公钥加密私钥解密以及验证的过程涉及到了网络安全、加密算法、哈希函数和数字签名等多个知识点,它们是构建安全通信和数据保护的基础。理解并正确使用这些工具,对于开发安全的软件系统至关重要。

    代码签名数字证书(含私钥)_过期证书_过期数字签名强制签名工具_数字签名_证书

    它包含了开发者的信息、公钥以及CA的数字签名。当用户下载或安装已签名的软件时,操作系统会检查该证书的有效性,确保软件没有被篡改,并且来自可信的源。 在描述中提到的“过期证书”是指证书的有效期已经过去。...

    支付宝密钥(公钥 私钥)生成工具

    1. **身份验证**:支付宝商家或开发者使用私钥生成数字签名,这个签名可以被支付宝服务器通过公钥验证,确保消息的来源真实且未被篡改。 2. **数据加密**:虽然在支付宝交易过程中主要采用HTTPS等协议进行端到端...

    数字证书原理,公钥私钥加密原理1

    【数字证书原理与公钥私钥加密概述】 ...公钥私钥加密和数字证书是网络安全的基石,它们为网络通信提供了强大的安全保障。理解这些基本概念有助于我们更好地理解和应对网络安全挑战,保护个人和企业的信息安全。

Global site tag (gtag.js) - Google Analytics