首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加密机制

加密机制
EN

Security用户
提问于 2014-07-26 05:54:23
回答 2查看 313关注 0票数 0

我想安全地通过互联网发送数据。为此,我使用接收器的公钥对数据进行加密。在这种情况下,如果网络中的入侵者修改数据,比如通过旋转放置比特,我能成功地解密数据吗?

而且我一直在通过网络发送数据。如果入侵者修改了上述方法中提到的数据,那么如何安全地发送?

同样,这种情况是否适用于所有对称加密?

EN

回答 2

Security用户

发布于 2014-07-26 06:16:59

说到加密,而不是仅限于RSA,如果中间人修改加密消息,该消息将不会像您发送的消息一样解密。这取决于所使用的加密算法。例如,如果使用了块密码,只有被修改数据的块不能正确地解密,其余的块将解密很好,尽管无法判断哪些已被更改。如果字节被更改,其他类型的加密将无法解密消息。

也就是说,加密的主要目的是提供机密性,因为它是用来确保你和对方之间的对话不会被其他人截获和读取。您似乎要求的是一种确保您发送的数据在传输过程中不被修改的方法。加密可以帮助这一点,从简单的基本哈希,到使用DSA (数字签名算法)。如果您获取消息的哈希,将哈希放在消息的末尾,并对整个消息进行加密,当接收方获得并解密消息时,他们可以重新散列消息,并根据提供的哈希验证消息。如果他们是一样的,他们可以几乎肯定地说,信息并没有改变在运输。

旁注- RSA是缓慢的,通常保留给小消息使用,例如交换对称密钥,或“签名”一条消息的散列。它通常不用于加密大型消息。

票数 1
EN

Security用户

发布于 2014-07-28 15:29:22

一般来说,加密提供的是机密性,而不是完整性。根据算法的不同,攻击者可能或多或少地控制解密后显示的内容。

无论如何,我们在这里讨论的是RSA,其中加密使用接收者的公钥。顾名思义,公钥是公开的(而保持它的“秘密”可能很难)。因此,攻击者可能试图自己创建一个数据元素,使用收件人的RSA密钥对其进行加密,并将其发送,就像来自真正的客户端一样。如果您想保护自己不受此影响,那么您需要某种方法来区分合法发送者发送的消息和攻击者发送的假消息。这需要身份验证。

实现这种身份验证的方法主要有两种,它们都依赖于现有的协议和软件(这是一件非常好的事情,因为实现您自己的密码是一个错误的想法,它多次导致灾难):

  1. 使发送者也拥有公钥/私钥对,并且发送方标志他发送的消息。通过验证签名,收件人可以确保接收到的消息是正确的,准确并更正到最后一位。这是“签名电子邮件”模型,因此这是在OpenPGP标准。支持实现是可用的(例如GnuPG)。
  2. 在发送方和接收方之间建立安全隧道。在该隧道中,接收方对发送方进行身份验证(例如,使用密码);然后客户端在隧道内发送消息。隧道使用加密技术来维护其完整性,即使对活动的攻击者也是如此。这是Web/HTTPS模型,隧道是SSL/TLS。SSL支持代码在客户端和服务器软件中都可以广泛使用,并且还存在独立的库(例如OpenSSL)。
票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/63999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档