加密公钥和私钥对概念的大难题


Big Dilemma With Encryption Public And Private Key Pairs Concept

我正在创建一个RESTful API web服务,我需要一种实现公钥和私钥对的方法。

我将使用PHP的一些内置函数来创建我自己的算法来生成两个键的值。

我只需要了解系统背后的概念或逻辑。

示例中,客户端和服务器都有公钥和私钥值。然后在客户端使用另一种算法组合密钥,在服务器端进行解码,如果匹配,则显示所请求的资源?

还是我偏离了他们的标记?任何链接或建议将不胜感激

有一些算法使用私有/公共对。它们的三种常见用途是:加密/解密、签名/验证和密钥协议。

对于加密/解密,数据仅使用公钥加密,使用私钥解密。RSA算法就是一个例子。

对于签名/验证,数据用私钥签名,并用公钥验证。DSA算法就是一个例子。

对于密钥协议,有两方拥有他们的公钥/私钥。双方交换他们的公钥,并使用私钥、公钥和另一端的公钥生成共享密钥。一个例子是Diffie-Hellman (DH)算法。

顾名思义,对于任何一方,你都不会给出你的私钥。您可以安全地在任何您想要的地方发布您的公钥。如果只有公钥,就无法执行上述任何需要私钥的任务——显然,在给定公钥的情况下计算出私钥是不可行的。