Encryption 基本密码学理解:RSA签名

Encryption 基本密码学理解:RSA签名,encryption,cryptography,rsa,signature,Encryption,Cryptography,Rsa,Signature,我需要设置一个场景,客户端发送一个加密(AES)和签名文件,服务器解密并验证签名(RSA) 以下是我想到的步骤: 1) 计算文本文件的签名,然后将(base64编码的)签名附加到头中 2) 加密文本文件(使用添加的标题)。 3) 将加密文件发送到服务器 4) 在服务器上,解密文件,然后从头中提取签名(base64解码)。验证发件人。如果已验证,则使用文本文件 我的问题是: 您认为我应该首先加密文本文件,然后以明文形式添加标题(base64),以便首先验证发送方,然后如果验证发送方,操作是否可以继

我需要设置一个场景,客户端发送一个加密(AES)和签名文件,服务器解密并验证签名(RSA)

以下是我想到的步骤:

1) 计算文本文件的签名,然后将(base64编码的)签名附加到头中 2) 加密文本文件(使用添加的标题)。 3) 将加密文件发送到服务器 4) 在服务器上,解密文件,然后从头中提取签名(base64解码)。验证发件人。如果已验证,则使用文本文件

我的问题是:

您认为我应该首先加密文本文件,然后以明文形式添加标题(base64),以便首先验证发送方,然后如果验证发送方,操作是否可以继续解密文件内容

底线是,当我一开始这么做的时候,我想象签名也可以被混淆,因此我对它进行了加密。现在的问题是,签名真的应该被混淆吗??
攻击者如何使用签名(如果是普通签名?)?他无论如何都不能篡改它,因为验证会失败。。。请说明一下。

简言之:不要重新发明轮子,特别是如果你没有密码学方面的专业知识


以现有的加密方案为例,比如OpenPGP或PKI(您需要它的CMS部分)并使用它。如果您没有集中的密钥管理(即不涉及证书颁发机构等),那么OpenPGP很好。如果您想要依赖现有的证书(和密钥)分发和管理基础设施,那么PKI是很好的。PKI在各种软件中都有更好的支持,但是如果客户端和服务器都是由您设计的,那么这并不重要

所以问题在于是先签名然后加密还是其他方式?显示了“先签名后加密”方法的问题。感谢链接:)以下是我学到的内容:“当主体在已加密的材料上签名时,不应推断主体知道消息的内容。另一方面,如果您先签名然后加密,则可以推断对消息进行签名然后对其进行加密的主体知道消息的内容,并且您的服务器返回一个加密错误(这总是一个“错误填充”异常,因为没有其他错误)那么,您的服务器是一个填充oracle,容易受到填充oracle攻击。这可以通过添加某种对称验证来避免,例如HMAC。由于此攻击在每字节128次尝试后暴露了您的整个纯文本消息,因此它可能比Dan D.Thank在链接中描述的问题更重要。好的,我将研究一下OpenPGP。但是把实现放在一边。你觉得签名加密本身怎么样?基本上我想知道这个概念better@user489152Dan D.在评论中对你的上述问题给出了一个精彩且值得一读的答案。