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

不它只是反向的作用的公共-私人钥匙?

例如,我想用我的私人钥产生的消息所以只有我可能可以发件人。我想我的公用钥匙被用于阅读的消息和我不在乎谁读。我希望能够加密的某些信息,并使用它作为一个产品主要为我的软件。我只关心我是唯一一个可以生成这些。我希望包括我的公用钥匙在我的软件解读的签名的关键。我不在乎谁可以读取的数据的关键,我只关心我是唯一的可核查的一个谁可以生成它们。

是签署有用的,在这种情况?

有帮助吗?

解决方案

加密时,您使用他们的公共密钥写一个消息,他们使用自己的私钥即可阅读。

签署,您使用你的私钥写邮件的签名,和他们使用公钥以检查它是否确实是你的。

  

我想用我的私钥生成消息,因此只有我能可能是发送者。

     

我想使用我的公钥阅读的邮件,我不在乎谁看这些

这是签署的,它与你的私钥进行。

  

我希望能够加密某些信息,并用它作为我的软件产品密钥。

     

我只在乎我是谁,能够产生这些唯一的一个。

如果你只需要知道它自己,你不需要惹键做到这一点。你可能只是随机生成的数据,并保存在数据库中。

但如果你希望人们知道,关键是真的你,你需要生成随机数据,保存在其数据库中,并与您的密钥进行签名。

  

我想包括在我的软件解密/读取密钥的签名我的公钥。

您可能会需要购买一个证书从如Verisign或Thawte商业提供您的公钥,使人们可以检查,没有人伪造的软件和与他们代替你的公钥。

其他提示

在RSA密,当你的生成密钥对,这完全是任意的你选择哪一个是公众的关键,并且其私人钥匙。如果你加密的一个,你可以解密其他的-它的工作在两个方向。

所以,这是相当简单看看你怎么可以一个加密消息 接收器的公 关键的,以便接收器可以解密这与他们的 关键。

签名是证明签名人的私人钥匙相匹配的一些公共关键。要做到这一点,它就足以加密消息有发件人的 私人钥匙, ,包括加密版本一起的明文版本。到验证的发件人,解密的加密版本,并检查它是一样的明文。

当然,这意味着你的消息不是秘密。任何人都可以进行解密,因为公众的关键是众所周知的。但是,当他们这样做,他们已经证明,创造者密文具有对应的私人钥匙。

然而,这意味着加倍的大小,传输文和文一起(假设你想要的人不感兴趣,核实签名,来阅读该信息)。所以相反,通常的签名是创建的通过创建一个 哈希 的明文。重要的是假的哈希不可能是创建的,所以加密散列算法如SHA-2的使用。

所以:

  • 产生一个签名,请哈希从明文、密它与你的私人钥匙,包括它一起的明文。
  • 核实签名,使哈希从明,解密的签名与发件人的公用钥匙,检查这两个哈希都是相同的。

呀想签约数据作为给它自己的蜡邮票没有其他人了。它是为了实现的完整性和不可否认性即可。加密是如此的没有其他人能看到的数据。这样做是为了达到的保密即可。见维基百科 http://en.wikipedia.org/wiki/Information_security#Key_concepts

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

签署是产生“哈希”带有可与您的公钥来验证你的私钥。该文本以明文方式传输。

加密使用接收方的公钥来加密所述数据;解码与自己的私钥进行。

因此,键的使用不颠倒(否则你的私钥不会是私有了!)。

有两个不同的但密切相关的问题在建立一个安全通信

  1. 加密的数据,因此,只有经授权的人员可以解密和阅读它。
  2. 验证身份标识/认证的发送者。

这两个问题可以是优雅的解决使用公共钥匙加密技术。

I.加密和解密数据

爱丽丝想要的消息发送给Bob,没有人应该能够阅读。

  • 爱丽丝的加密消息有鲍勃的公用钥匙和发送过来。
  • Bob接收信息和解密使用他的私人钥匙。

请注意,如果想要发送信息给B,需要使用公共 关键的B(这是公开的任何人)既不公 也没有私人钥匙的进入图片在这里。

所以如果你想要发送信息给我你应该知道并使用我的公钥我提供给你,只有我将能够解密的消息,因为我是唯一一个有权访问相对应的私人钥匙。

二。 验证身份的发送器(认证)

爱丽丝想要发送信息到Bob一次。问题进行加密的数据是解决使用上述方法。

但是如果我之间的爱丽丝和鲍勃,介绍自己为'爱丽丝'鲍勃和给我自己的消息来鲍勃,而不是转移的一个发送的爱丽丝。即使我无法解密和阅读原始发送的消息爱丽丝(需要访问鲍勃的私人钥匙)我是劫持整个之间的对话。

有没有办法鲍勃可以确认消息他正在接受实际上都是发送的爱丽丝?

  • 爱丽丝的迹象的信息与她的私人钥匙发送过来。(在实践中,什么是签名是散列的消息,例如沙-256或SHA-512.)
  • Bob接收和验证它使用爱丽丝的公共关键。因为爱丽丝的公用钥匙验证成功的消息,鲍勃可以得出结论,该消息已经签署了爱丽丝。

签署表明你真的是源或担保的对象签名。每个人都可以读出的对象,虽然。

加密只意味着那些具有对应的私钥能读它,而无需登录但不保证你是加密的对象后面。

您所描述究竟如何以及为什么签名是公共密钥加密使用。注意,这是非常危险的签名(或加密)由其他厂商提供aritrary的消息 - 这允许对可能危及您的密钥算法攻击

在您的情况,您不要在非对称加密的加密的意思;我宁愿把它称为“编码”。

所以你编码您的数据转换成一些二进制表示,那么你与你的私钥签名。如果您无法验证通过你的公钥签名,你知道签名的数据是不是与你的私人密钥生成。 (“验证”,意思是无符号数据是没有意义的)

在功能上,使用公钥/私钥加密,使某些只有接收器可以读取你的信息。该消息使用接收者的公共密钥来加密,然后进行加密。

登录使用,让接收器知道你所创建的消息,并将其传输过程中没有改变。消息签名是使用自己的私钥进行。

至于所使用的算法:这involes素编号。我会做一个搜索在谷歌更好的解释。

  

是什么加密一些数据VS(使用RSA)签署某些数据之间的差异?

加密保留消息(“一些数据”)的保密性,而签名提供不可否认性:即,仅签署它可能已经签名的实体。有功能上的差异,以及;阅读。

  

这是否简单地恢复公共私有密钥的作用是什么?

绝对不是。使用相同的私钥签名的和的解密的(或同样,核查和的加密相同的公共密钥的)是令人难以接受的,因为你不应该混的目的。这与其说是一个数学问题(RSA应该仍然是安全的),但与密钥管理的,其中例如一个问题签名密钥应该有一个更短的生活和含有较多的保护,使用前。

对于相同的消息,您应该使用签名发送者私钥和接收器信任的加密的公钥。常用登录当时的加密使用,否则对手可以取代他自己的签名。同样,你应该使用接收器的私钥进行解密和信任的发送者进行验证的公共密钥。

此外,你应该明白,签名生成不使用“用私钥加密”。尽管所有的RSA运算是基于模幂,该填充方案是用于生成签名的完全不同。此外,公共密钥具有比在RSA的所有实际用途RSA私钥完全不同的特性。

  

例如,我想用我的私人密钥来生成消息,以便只有本人可以可能是发送者。

这是不可抵赖性,其可通过签署实现。

  

我想使用我的公钥阅读的邮件,我不在乎谁阅读它们。

在公共密钥应该被认为是所有已知的。如果你想大家阅读的邮件,那么你根本就没有对其进行加密。

签名通常不会影响消息的内容。该消息被认为是从签名分开。正式这样的签名被称为“签名与附录”,其中附件是消息。这是一个有点怪异的名字作为消息在它认为比签名更重要的,但是,是。只有极少数的签名报价(部分)消息恢复;它们不用于多了和通常被认为是不推荐使用的。

请注意签名协议如CMS可以部署一个容器格式同时包含消息和签名。在这种情况下,你需要首先获得 - 仍然未加密的 - 消息从容器中,很像从一个普通的.zip压缩包解压缩的文件。因此,消息可以从视图中隐藏,并且不能在这种情况下,可直接使用。

  

我希望能够加密某些信息,并把它作为一个产品密钥为我的软件。我只在乎我是谁,能够产生这些唯一的一个。

使用加密来实现机密性。在过去的RSA签名生成经常被认为是“加密,私钥”。然而,该操作有很大的不同,如上所述,和后来标准拼命尝试和单独的加密和签名生成。

  

我想包括在我的软件解密/读取密钥的签名我的公钥。我不关心谁能够在关键读取数据,我只关心我是唯一一个可验证谁可以产生他们。

是的,这就是所谓的建立的信任的公共密钥。然而,保护您的程序代码是从保护的消息非常不同。您可以执行的代码签名的但随后你需要一些东西来检查日你的代码之外Ë签名的 的。有操作系统提供这种

有是Microsoft验证为实例。应用商店像iStore和Android应用商店可能会或可能不会使用代码签名,但他们提供了一些安慰,你的应用程序时,不会复制或商店内至少不会被克隆。密码术是并不总是在所有的溶液。

从被克隆保持你的代码/修改的所有的要困难得多,而你会是结结实实的DRM领土,如果你走那条路。

  

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

是,绝对。这当然可以帮助确保消息只被你签字,如果在公共密钥的信任。如果它可以为验证您的应用程序代码/集成公钥有益的完全取决于你希望运行代码的环境。

回答这个问题在的内容,发问者的意图是使用该解决方案的软件许可证,要求是:

  1. 没有第3次缔约方可以产生一个许可证的关键从反编译程序
  2. 内容的软件关键并不需要安全
  3. 软件关键不是人类可读

数字签名会解决这个问题作为原始数据,使得关键,可以签署与私营的关键,这使得它不是人类的可读性而可能被解码,如果反向设计。但私人钥匙是安全的,这意味着没有一个将能够让许可证的软件(这是点)。

记住你不能防止技术人员的删除软件锁在你的产品。所以如果他们已经破解每个版本发布。但你真的不希望他们能够生成新的钥匙为你的产品,可以共享所有的版本。

蟒蛇 该PyNaCl文件有一个例子中的'数字签字',这将套房的目的。 http://pynacl.readthedocs.org/en/latest/signing/

和导致盐项目C的例子

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top