gpt4 book ai didi

security - AES256 CBC + HMAC SHA256 确保 secret 性*和*身份验证?

转载 作者:行者123 更新时间:2023-12-03 23:29:01 25 4
gpt4 key购买 nike

我正在考虑使用 AES256 CBC + HMAC SHA-256 作为确保 secret 性和身份验证的消息的构建 block 。

特别是,考虑这种情况:

  • Alice 拥有属于 Bob 的公钥( key 交换和算法超出了本问题的范围)。 Alice 有一个识别 key K,也与 Bob 共享,她可以用它来识别自己。只有 Alice 和 Bob 知道 key K。
  • Alice 使用 Bob 的公钥加密 (nonce || K)。
  • Bob 解密数据包,现在有 K 和 nonce。
  • Bob 使用 SHA-256 和 SHA256(K || nonce) 来产生 256 位的 K(e)。
  • Bob 使用 SHA-256 和 SHA256(K || nonce + 1) 来产生 256 位的 K(s)。

  • 现在对于 Bob 希望发送给 Alice 的每个数据包,他执行以下操作:
  • 创建一个新的随机 128 位 IV
  • 使用 IV 和 K(e) 作为 key 加密消息。
  • 创建一个 SHA-256 HMAC,其中 K(s) 作为 key ,(IV || Encrypted message) 作为数据。
  • 最后将(IV || HMAC || 密文)发送给 Alice

  • Alice 还计算了 K(e) 和 K(s),并在接收 Bob 的数据时遵循以下过程:
  • 将消息拆分为 IV、密文和 HMAC。
  • 使用 K(s)、IV 和密文计算 HMAC。
  • 将 HMAC 与发送的 HMAC 进行比较。如果匹配,Alice 认为这个消息被认证为 Bob 发送的消息,否则被丢弃。
  • Alice 使用 K(e)
  • 解密消息

    该协议(protocol)是否确保 Alice 只解密来自 Bob 的消息,假设除了 Bob 之外没有人可以读取 Alice 发送给他的使用他的公钥加密的加密消息?

    IE。以这种方式构造的消息能否确保 secret 性和身份验证?

    注意:如果协议(protocol)要求 Bob 发送多条消息,该方案需要稍作修改以避免重放攻击。

    附言我知道 AES-GCM/CCM,但该方案适用于大多数加密包中的基本 AES、SHA 和 HMAC 算法。这个解决方案也可能会更慢,但这也超出了问题的范围。

    最佳答案

    如果您不想使用 PKI,请查看 TLS-PSK。它似乎可以解决您自己解决的确切问题。请参阅 RFC 4279(和 5487 了解其他密码套件)。

    关于security - AES256 CBC + HMAC SHA256 确保 secret 性*和*身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5235161/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com