2009-08-20 5 views
15

Je suis un peu confus sur les formats de fichiers de cryptage.Quels sont les formats de fichier de cryptage standard?

Disons que je veux crypter un fichier avec AES-256. Je cours le dossier par l'algorithme de cryptage et j'ai maintenant un flux d'octets cryptés.

Je peux évidemment écrire ce flux d'octets dans un fichier, mais aucune application de chiffrement tierce ne le comprendra, car il ne s'attend pas à un flux brut d'octets chiffrés.

Dans quels formats de fichiers puis-je écrire cela pour que d'autres outils de chiffrement puissent le comprendre?

Ceux que je connais (je pense) sont:

PKCS#7 
ASN.1 
DER 
PEM 
PKCS#8 

mais je ne sais pas comment ils se rapportent tous les uns aux autres.

Apparemment, l'utilitaire AESCrypt a aussi un format qui semble être son propre format propriétaire: http://www.aescrypt.com/aes_file_format.html

Yat-il un antisèche partout sur ce genre de choses? J'ai été googler et trouvé des morceaux, mais jamais senti comme si j'avais l'image complète.

Répondre

7

ASN.1 et DER sont des règles pour traduire un message structuré en binaire. Ils ne sont pas, en eux-mêmes, un format de fichier, bien qu'ils soient utilisés pour définir et décrire les formats de fichiers.

PKCS # 7 est étroitement lié à PEM et ce sont les deux formats pour les fichiers cryptés à clé publique. Ils sont définis en termes de messages ASN.1 codés DER encapsulés en base 64. Ils constituent la base du format S/MIME pour le courrier Internet sécurisé. (Voir RFC3851)

En parallèle avec S/MIME est le format de fichier OpenPGP, également principalement conçu pour les fichiers cryptés à clé publique. (Voir RFC4880)

Dans les deux formats S/MIME et OpenPGP, il existe un bloc qui contient des données cryptées à clé symétrique.Il est possible de créer des fichiers S/MIME ou OpenPGP valides contenant uniquement ce bloc. De cette manière, les formats S/MIME (a.k.a. PKCS # 7) et OpenPGP peuvent également être utilisés pour le cryptage à clé symétrique.

2

AES est un algorithme de chiffrement, pas un format de fichier.

Comme vous le faites remarquer, il y a beaucoup de boutons et de leviers sur l'algorithme - la force des touches en est une. AES-256 signifie simplement, l'algorithme AES avec une clé de 256 bits. Mais il y a beaucoup d'autres boutons. Mode, pour un. AES a un certain nombre de modes: CBC, BCE, OFB, CFB, CTR et autres. Un autre est le IV, qui s'applique à certains modes. Le rembourrage en est un autre. Habituellement, ces boutons sont exposés dans l'API AES pour le framework que vous utilisez.

Dans la plupart des cas, AES est associé à d'autres technologies cryptographiques - par exemple, la dérivation de clé basée sur un mot de passe (PBKDF2) est souvent utilisée pour générer des clés ou des IV. Les MAC sont souvent utilisés pour vérifier l'intégrité des données cryptées.

Différents outils utilisent AES pour crypter, et s'ils veulent que leurs données soient lisibles, ils publient la liste des boutons qu'ils utilisent, et comment ils sont définis, ainsi que la façon dont toute technologie cryptographique peut être utilisée. Lorsque vous créez un format de fichier, vous devez stocker ou publier ce type de choses si vous souhaitez que votre fichier soit lisible par d'autres applications. PKCS # 8 n'est pas un format de fichier crypté, c'est un format pour les clés privées.

+4

Droite - mais n'y a-t-il pas des formats de fichiers normalisés? Alors qu'un programme ouvrant le fichier peut découvrir l'algorithme, les paramètres utilisés, etc? C'est ce que je demande - existe-t-il des formats dans lesquels je peux écrire des données cryptées, et je m'attends à ce qu'un autre programme puisse le comprendre (en supposant qu'il implémente cet algorithme de la même manière, l'utilisateur clé publique incluse, etc.). Si de tels formats existent, où puis-je trouver un résumé de mes options? Ou est-ce toujours "rouler le vôtre?" Merci pour l'aide. – wadesworld

+0

Eh bien, bien sûr. Par exemple WinZip peut utiliser AES, et il documente comment il le fait. http://www.winzip.com/aes_info.htm PKCS # 7 est documentée dans la RFC 2315. http://tools.ietf.org/html/rfc2315 MS-Word utilise le cryptage AES. http://download.microsoft.com/download/6/7/f/67f1ff44-f1c9-4fae-a451-4e803f7b727e/2007_Office_DocEncryption.docx Je ne suis pas sûr si vous avez un format spécifique en tête, ou .. vous voulez savoir sur beaucoup de formats, ou quoi. – Cheeso

Questions connexes