使用给定会话密钥加密的更高级别方法(使用公钥加密会话密钥)

时间:2017-06-30 08:37:38

标签: c openssl cryptography aes rsa

我正在使用 openssl RSA + AES )在客户端和服务器之间进行加密,这是我的方案:

我是客户:

  1. 随机生成aes密钥作为会话密钥
  2. 使用会话密钥加密请求
  3. 使用服务器的rsa公钥加密会话密钥
  4. 将加密的请求和加密的会话密钥发送到服务器
  5. II服务器:

    1. 用它的rsa私钥解密会话密钥
    2. 使用会话密钥解密请求
    3. 使用相同的会话密钥加密响应
    4. 将加密回复发送回客户
    5. III客户:

      1. 使用相同的会话密钥
      2. 解密响应

        我正在用 c ++ 编写服务器端代码,这是我的问题:

        1. 我是否使用相同的会话密钥进行响应?或者我应该为客户端生成RSA公钥和私钥吗?这样响应也可以由服务器端生成的随机会话密钥加密,然后使用客户端的公钥来加密会话密钥。

        2. 如果上面的Senario可以工作:我知道要获得解密的请求,我可以使用openssl的高级EVP Open函数和加密的会话密钥以及私钥。 但是,是否有类似的高级功能来加密响应使用指定的加密会话密钥和服务器的私钥 一步?或者我应该用openssl的RSA_decryptAES_encrypt手工编写代码(但是有2个步骤)?

0 个答案:

没有答案