两个人之间如何在对称加密中共享密钥?
通过“安全通道”。 “安全通道”没有官方定义。密钥共享超出了加密算法的范围,并且简单地假设发生。在实践中,有许多机制,从简单的“Alice告诉Bob关键”到精心设计的密钥交换和密钥协商算法,如Diffie-Hellman。
当alice使用bob的私钥加密时,alice如何知道bob的私钥
Alice永远不会知道Bob的私钥。这就是为什么它被称为“私人”。
当alice使用bob的公钥加密时,alice如何知道bob的公钥
有很多方法。公钥不是秘密,因此可以广泛发布。交换公钥是微不足道的。公钥的难点在于相信他们来自你认为他们来自谁。这是一个完整的研究领域,但通常由诸如大家信任的证书颁发机构之类的东西处理,以及签署密钥的人签名。
Https是一种非对称加密方式?我从来没有看到钥匙产生?即使生成密钥,它们存储在哪里?我怎么不解密这些加密?
公钥作为初始握手的一部分发送,并由证书颁发机构签名。然后商定对称密钥并用于加密会话。精确的算法取决于配置,并且在早期握手期间交换配置。您没有看到任何这种情况的原因是大多数HTTPS库都会为您完成所有这些操作,并且只显示最终结果。从根本上说,HTTPS是“HTTP over TLS”(加上一点点握手以启动TLS会话)。看到 RFC 2817 关于TLS如何开始,看看 RFC 8446 如果您对详细信息感兴趣,请访问最新版本的TLS。您还可以搜索有关详细信息的众多文章的“TLS简介”。