Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 使用加密消息的安全通信_Security_Encryption_Rsa_Public Key Encryption_Private Key - Fatal编程技术网

Security 使用加密消息的安全通信

Security 使用加密消息的安全通信,security,encryption,rsa,public-key-encryption,private-key,Security,Encryption,Rsa,Public Key Encryption,Private Key,我有一个关于如何在用户之间加密消息的问题。注意,我只会讨论密码理论,而不是依赖于平台的代码,比如C++和Windows加密。我说的是系统编程,而不是使用TLS、SSL等加密的web编程 此外,忽略证书和消息签名,因此只需将公钥视为已被验证为非欺诈性公钥,并将消息视为来自正确的用户。 我认为实现用户间快速安全加密通信的最佳方法是让两个用户都拥有会话密钥,因为对称加密比非对称加密快,并使用非对称加密(RSA)来安全传输会话密钥 我知道还有其他的密钥协商算法,比如Diffie-Hellmans,但让我

我有一个关于如何在用户之间加密消息的问题。注意,我只会讨论密码理论,而不是依赖于平台的代码,比如C++和Windows加密。我说的是系统编程,而不是使用TLS、SSL等加密的web编程

此外,忽略证书和消息签名,因此只需将公钥视为已被验证为非欺诈性公钥,并将消息视为来自正确的用户。

我认为实现用户间快速安全加密通信的最佳方法是让两个用户都拥有会话密钥,因为对称加密比非对称加密快,并使用非对称加密(RSA)来安全传输会话密钥

我知道还有其他的密钥协商算法,比如Diffie-Hellmans,但让我们坚持使用RSA,这是我选择的

请告诉我,这可能是一种不安全(中间人攻击)或执行加密通信的效率极低的方式

理论步骤:

i、 )参与方={服务器,客户端}

ii.)服务器:生成会话密钥(RC4)

iii.)客户端:生成私钥/公钥对(RSA)

iv.)客户端:向服务器发送公钥

v、 )服务器:使用客户端的公钥加密会话密钥,然后发送加密的 客户端会话密钥

vi.)客户端:使用客户端的私钥解密会话密钥

vii.)双方现在持有快速加密通信的会话密钥

服务器(服务器的会话密钥)会话密钥的加密数据包(通信介质)客户端(服务器的会话密钥、客户端的公钥/私钥对)


谢谢

假设

  • 不可能篡改公钥
    • 我想你是说“忽略证书和消息签名”
  • 密码系统未被破坏
    • 对称密码未被破坏(例如,RC4被破坏)
    • 非对称密码没有被破解
    • 单向散列函数没有被破坏
    • 随机数发生器没有损坏
在这些条件下,这是完全安全的。事实上,您在问题中描述的是PGP是如何工作的

如果你想了解更多有关攻击PGP的信息,请访问。 如果你愿意学习密码学的基础知识,这是一个优秀的初学者教程

让我们继续使用我选择的RSA

这就是你最大的弱点所在

诸如TLS(可以使用RSA)SSH和PGP之类的协议为协商加密提供了定义良好的机制,而诸如openssl之类的实现则提供了一个有文档记录的、经过测试的、可移植的、健壮的抽象层,我们将对其进行测试

滚动您自己的解决方案会带来注入漏洞的巨大风险。并且在维护过程中带来持续的痛苦


顺便说一句,RC4被很多人认为是不可靠的。

我从RC4改为DES,我相信这是通过Windows加密API提供给我的最好(最安全)对称算法。我认为我使用的Windows密码库涵盖了大多数假设,比如不包括破译的密码和使用适当的散列,因此感谢您确认我的理论!DES也坏了,请小心:)此外,正如symcbean在其回答中提到的,实现加密通常是一个非常糟糕的主意。你可能想看看这个帖子:你是对的,哈哈,德斯很穷。我又换成了AES-256。你能从这个列表中告诉我哪种对称算法是最安全的吗@John Doe CALG_AES_256是此列表中最强的对称密码。谢谢!我很感激。