加密某些数据与签署某些数据(使用RSA)之间的区别是什么?

它只是颠倒了公共-私有密钥的角色吗?

For example, I want to use my private key to generate messages so only I can possibly be the sender. I want my public key to be used to read the messages and I do not care who reads them. I want to be able to encrypt certain information and use it as a product-key for my software. I only care that I am the only one who can generate these. I would like to include my public key in my software to decrypt/read the signature of the key. I do not care who can read the data in the key, I only care that I am the only verifiable one who can generate them.

签名在这种情况下有用吗?


当前回答

从功能上讲,您可以使用公钥/私钥加密来确保只有接收者可以阅读您的消息。使用接收者的公钥对消息进行加密,使用接收者的私钥对消息进行解密。

您可以使用签名让接收者知道您创建了消息,并且在传输过程中没有更改。消息签名是使用您自己的私钥完成的。接收方可以使用您的公钥来检查邮件是否被篡改。

至于使用的算法:这涉及到一个单向函数,例如维基百科。第一个这样的算法使用大素数,但此后又发明了更多的单向函数。

搜索“Bob”,“Alice”和“Mallory”在互联网上找到介绍文章。

其他回答

签名是用您的私钥生成一个“散列”,可以用您的公钥进行验证。文本是明文发送的。

加密使用接收方的公钥来加密数据;解码是用他们的私钥完成的。

因此,密钥的使用不会反转(否则您的私钥将不再是私有的!)。

从功能上讲,您可以使用公钥/私钥加密来确保只有接收者可以阅读您的消息。使用接收者的公钥对消息进行加密,使用接收者的私钥对消息进行解密。

您可以使用签名让接收者知道您创建了消息,并且在传输过程中没有更改。消息签名是使用您自己的私钥完成的。接收方可以使用您的公钥来检查邮件是否被篡改。

至于使用的算法:这涉及到一个单向函数,例如维基百科。第一个这样的算法使用大素数,但此后又发明了更多的单向函数。

搜索“Bob”,“Alice”和“Mallory”在互联网上找到介绍文章。

加密时,你用他们的公钥写消息,他们用他们的私钥读取消息。

在签名时,你使用你的私钥来写消息的签名,他们使用你的公钥来检查它是否真的是你的。

我想使用我的私钥来生成消息,这样只有我可能是发送者。 我希望我的公钥被用于阅读消息,我不关心谁阅读它们

这是签名,它是用你的私钥完成的。

我希望能够加密某些信息,并将其用作我的软件的产品密钥。 我只在乎我是唯一能产生这些的人。

如果你只需要自己知道它,你不需要弄乱钥匙来做到这一点。您可能只是生成随机数据并将其保存在数据库中。

但如果你想让人们知道密钥确实是你的,你需要生成随机数据,保存在数据库中,并用你的密钥签名。

我想在我的软件中包含我的公钥,以解密/读取密钥的签名。

您可能需要从Verisign或Thawte等商业提供商处购买公钥证书,以便人们可以检查是否有人伪造了您的软件,并将您的公钥替换为他们的。

是的,你可以把签名看作是给你自己的数据盖上别人没有的蜡章。这样做是为了实现完整性和不可抵赖性。加密是为了让其他人看不到数据。这样做是为了实现保密性。参见维基百科http://en.wikipedia.org/wiki/Information_security#Key_concepts

签名是使用您的私钥签名的消息的散列。

在您的场景中,您不使用非对称加密的含义进行加密;我宁愿称之为“编码”。

你把数据编码成二进制表示,然后用你的私钥签名。如果不能通过公钥验证签名,就可以知道签名的数据不是用私钥生成的。(“验证”表示无符号数据没有意义)