2011-06-09 35 views
0

我有一个文本文件,必须使用RSA私钥签名,然后附加此签名并对此“文本文件+签名”执行AES加密。将RSA签名附加到文本文件

由于演示的原因,我正在测试这样的加密文件。

我正在用C编写一个简单的程序来执行以下操作: 首先在文本文件上做一个RSA符号(1024位)。 然后将签名附加到文本文件 然后对文件执行AES加密。

然后执行AES解密 然后从文件中删除128字节签名。 然后在解密后对原始文本文件和文本文件进行RSA验证。

这里是我的问题:

这是个好主意,一个二进制签名附加到一个文本文件? 如果没有什么是这样做的一般方法?

我尝试了一个简单的程序来完成上述操作,但我总是会在AES解密中获得一个或两个垃圾字符,因此RSA验证失败。

请注意。 对这样的文件进行AES解密,然后删除128字节(1024位模数)签名。

回答

2

前段时间通过Privacy Enhanced Mail引入了用于在文本文件中嵌入加密信息的ad-hoc标准:基本上,二进制信息以base-64编码并附加到文本文件以及标题行以标识“snip “添加内容的要点。

这里是什么通常看起来像(这个块将被添加到现有文本文件的末尾)


-----BEGIN PRIVACY-ENHANCED MESSAGE----- 
Proc-Type: 4,ENCRYPTED 
Content-Domain: RFC822 
DEK-Info: DES-CBC,F8143EDE5960C597 
Originator-ID-Symmetric: [email protected],, 
Recipient-ID-Symmetric: [email protected],ptf-kmc,3 
Key-Info: DES-ECB,RSA-MD2,9FD3AAD2F2691B9A, 
      B70665BB9BF7CBCDA60195DB94F727D3 
Recipient-ID-Symmetric: [email protected],ptf-kmc,4 
Key-Info: DES-ECB,RSA-MD2,161A3F75DC82EF26, 
     E2EF532C65CBCFF79F83A2658132DB47 

LLrHB0eJzyhP+/fSStdW8okeEnv47jxe7SJ/iN72ohNcUk2jHEUSoH1nvNSIWL9M 
8tEjmF/zxB+bATMtPjCUWbz8Lr9wloXIkjHUlBLpvXR0UrUzYbkNpk0agV2IzUpk 
J6UiRRGcDSvzrsoK+oNvqu6z7Xs5Xfz5rDqUcMlK1Z6720dcBWGGsDLpTpSCnpot 
dXd/H5LMDWnonNvPCwQUHt== 
-----END PRIVACY-ENHANCED MESSAGE----- 
+0

确定的样本,所以我要签名转化为Base64,然后附加一个PEM页眉和页脚,然后整个容器应该附加到我的文本文件? – user489152 2011-06-09 13:48:23

+0

如果你真的想复制这种东西的事实标准:http://wiki.samat.org/CheatSheet/OpenSSL将是一个好的开始。只需复制OpenSSL所做的即可获得相同的结果。 – 2011-06-09 15:13:12

+0

如何从头文件中提取base64签名?如何删除BEGIN和END字符串并在其中签名?我确定OpenSSL可能会在某处提到它?任何帮助? – user489152 2011-06-14 07:33:29