1

我计划在从物理存储到物理存储的文件传输过程中进行文件加密,作为我高中的最后一年项目。

我的问题是,AES 加密和 RSA 数字签名方案可以用作文件加密吗?目前我专注于文本文件(.doc.txt)。

我有以下协议:

  • 该文件将使用 AES 加密进行加密
  • 来自 RSA Encryption 的私钥将是文件的签名
  • 公钥将在解密期间验证签名

我不确定要使用的密钥的位大小,256 位 AES 和 1024 位 RSA。

4

1 回答 1

4

大多数时候 AES 和 RSA 以下列方式一起使用:

  1. 创建一个非对称密钥对并将私钥保密,并将公钥保存在受信任的密钥库中
  2. 创建一个对称数据加密密钥并用它加密数据(例如使用 AES-CBC 和随机 IV)
  3. 使用密钥对的公钥加密对称数据加密密钥
  4. 使用私钥创建签名(如果可能,使用单独的密钥对),例如使用 SHA-256 散列算法的 PKCS#1
  5. 存储加密数据(+IV)、加密密钥和签名

验证

  1. 检索数据等
  2. 使用信任库中的公钥验证签名
  3. 使用私钥解密对称密钥(受密码保护,存储在 USB 记忆棒或智能卡等上)
  4. 解密数据

您将需要某种方式来存储数据。最好为此使用通用格式,例如加密消息语法。有关密钥大小,请参见http://www.keylength.com/,例如使用 NIST 或 ECRYPT II 建议。我建议匹配大小,例如签名的 AES-128 位、RSA 3072 位和 SHA-256。

于 2012-07-28T13:09:55.220 回答