什么是标准加密文件格式?

wad*_*rld 17 encryption cryptography

我对加密文件格式有点困惑.

假设我想用AES-256加密文件.我通过加密算法运行文件,现在我有一个加密字节流.

我显然可以将该字节流写入文件,但是任何第三方加密应用程序都不会理解它,因为它不期望只是原始的加密字节流.

我可以编写哪种文件格式,以便其他加密工具可以理解它?

我所知道的(我认为)是:

PKCS#7
ASN.1
DER
PEM
PKCS#8
Run Code Online (Sandbox Code Playgroud)

但我不确定它们是如何相互关联的.

显然,AESCrypt实用程序也有一种格式,它似乎是它自己的专有格式:http://www.aescrypt.com/aes_file_format.html

这个东西的任何地方都有备忘单吗?我一直在谷歌搜索,发现点点滴滴,但从来没有觉得我有完整的画面.

Sto*_*bor 7

PKCS#8不是加密文件格式,它是私钥的格式.

ASN.1和DER是将结构化消息转换为二进制的规则.虽然它们用于定义和描述文件格式,但它们本身并不是文件格式.

PKCS#7与PEM密切相关,它们都是公钥加密文件的格式.它们是根据base-64封装的DER编码的ASN.1消息定义的.它们是安全互联网邮件的S/MIME格式的基础.(见RFC3851)

与S/MIME并行的是OpenPGP文件格式,也主要用于公钥加密文件.(见RFC4880)

在S/MIME和OpenPGP格式中,都有一个包含对称密钥加密数据的块.可以创建仅包含此块的有效S/MIME或OpenPGP文件.通过这种方式,S/MIME(也称为PKCS#7)和OpenPGP格式也可用于对称密钥加密.


Che*_*eso 5

AES 是一种加密算法,而不是一种文件格式。

正如您所指出的,算法中有很多旋钮和杠杆——关键强度是其中之一。AES-256 只是意味着,具有 256 位密钥的 AES 算法。但是还有很多其他的旋钮。模式,一方面。AES 有多种模式:CBC、ECB、OFB、CFB、CTR 等。另一个是 IV,它适用于某些模式。填充是另一个。通常这些旋钮在 AES api 中公开,用于您使用的任何框架。

在大多数情况下,AES 与其他加密技术相结合——例如,基于密码的密钥派生 (PBKDF2) 通常用于生成密钥或 IV。MAC 通常用于验证加密数据的完整性。

不同的工具使用 AES 进行加密,如果他们希望他们的数据可读,他们会发布他们使用的旋钮列表、如何设置以及如何使用任何相关的加密技术。

创建文件格式时,如果您希望其他应用程序可以读取您的文件,则需要存储或发布这些类型的内容。

  • 是的 - 但不是有基于标准的文件格式吗?以便打开文件的程序可以发现算法、使用的参数等?这就是我要问的 - 是否有可以写入加密数据的格式,并期望另一个程序能够理解它(假设它以相同的方式实现该算法,用户已获得密钥或公钥包括等)。如果存在此类格式,我在哪里可以找到我的选项摘要?还是总是“自己动手”?谢谢您的帮助。 (5认同)
  • 嗯,当然。例如,WinZip 可以使用 AES,并且它记录了它是如何使用的。http://www.winzip.com/aes_info.htm PKCS#7 记录在 RFC 2315 中。 http://tools.ietf.org/html/rfc2315 MS-Word 使用 AES 加密。http://download.microsoft.com/download/6/7/f/67f1ff44-f1c9-4fae-a451-4e803f7b727e/2007_Office_DocEncryption.docx 我不确定你是否有特定的格式,或者..你想要了解很多格式,或者什么。 (2认同)