2009-08-20 10 views
15

Jestem nieco zdezorientowany w formatach plików szyfrowania.Jakie są standardowe formaty plików szyfrowania?

Załóżmy, że chcę zaszyfrować plik za pomocą AES-256. Uruchomiłem plik za pomocą algorytmu szyfrowania i mam teraz strumień zaszyfrowanych bajtów.

Oczywiście mogę zapisać ten strumień bajtów do pliku, ale jakakolwiek aplikacja do szyfrowania innej strony nie zrozumie tego, ponieważ nie oczekuje tylko nieprzetworzonego strumienia zaszyfrowanych bajtów.

W jakie formaty plików mogę to zapisać, aby inne narzędzia szyfrujące mogły je zrozumieć?

Te znam (chyba) to:

PKCS#7 
ASN.1 
DER 
PEM 
PKCS#8 

ale nie jestem pewien, jak wszystkie one odnoszą się do siebie nawzajem.

Widocznie narzędzie AESCrypt ma również format, który wydaje się mieć własny format własnościowy: http://www.aescrypt.com/aes_file_format.html

Czy istnieje Cheatsheet nigdzie na tej rzeczy? Szukałem go i znalazłem kawałki, ale nigdy nie czułem, że mam pełny obraz.

Odpowiedz

7

PKCS # 8 nie jest formatem zaszyfrowanych plików, jest to format dla kluczy prywatnych.

ASN.1 i DER to zasady tłumaczenia wiadomości strukturalnych na pliki binarne. Nie są one same w sobie formatem pliku, chociaż są używane do definiowania i opisywania formatów plików.

PKCS # 7 jest blisko spokrewniony z PEM i oba są formatami dla plików zaszyfrowanych kluczem publicznym. Są one zdefiniowane w kategoriach wiadomości ASN.1 kodowanych DER zakodowanych w standardzie 64. Są one podstawą formatu S/MIME dla bezpiecznej poczty internetowej. (patrz RFC3851)

Równolegle z S/MIME jest format pliku OpenPGP, również zaprojektowanego głównie dla plików zaszyfrowanych kluczem publicznym. (Patrz RFC4880)

W obu formatach S/MIME i OpenPGP znajduje się blok zawierający zaszyfrowane dane symetryczne.Możliwe jest tworzenie poprawnych plików S/MIME lub OpenPGP zawierających tylko ten blok. W ten sposób formaty S/MIME (a.k.a. PKCS # 7) i OpenPGP mogą być również używane do szyfrowania za pomocą klucza symetrycznego.

2

AES jest algorytmem szyfrowania, a nie formatem pliku.

Jak podkreślasz, na algorytmie jest wiele gałek i dźwigni - siła kluczowa to jedna. AES-256 oznacza po prostu algorytm AES z 256-bitowym kluczem. Ale jest wiele innych gałek. Tryb, dla jednego. AES ma wiele trybów: CBC, ECB, OFB, CFB, CTR i inne. Innym jest IV, który dotyczy niektórych trybów. Obicie to kolejne. Zwykle te pokrętła są eksponowane w interfejsie AES dla dowolnego używanego przez ciebie szkieletu.

W większości przypadków AES jest łączony z innymi technologiami kryptograficznymi - na przykład kluczowanie oparte na kluczach (PBKDF2) jest często używane do generowania kluczy lub IV. Adresy MAC są często używane do weryfikacji integralności zaszyfrowanych danych.

Różne narzędzia używają AES do szyfrowania, a jeśli chcą, aby ich dane były czytelne, publikują listę pokręteł, których używają i jak są one ustawione, a także, w jaki sposób można wykorzystać powiązaną technologię kryptograficzną.

Podczas tworzenia formatu pliku należy przechowywać lub publikować tego rodzaju rzeczy, jeśli chcesz, aby twój plik był czytelny dla innych aplikacji.

+4

Dobrze - ale czy nie istnieją standardowe formaty plików? Aby program otwierający plik mógł odkryć algorytm, użyte parametry itp.? O to pytam - czy istnieją formaty, w których mogę pisać zaszyfrowane dane i oczekuję, że inny program będzie w stanie to zrozumieć (zakładając, że implementuje ten algorytm w ten sam sposób, użytkownik otrzymał klucz lub klucz publiczny w zestawie, itp.). Jeśli takie formaty istnieją, gdzie mogę znaleźć podsumowanie moich opcji? Czy zawsze jest "zwijać własne?" Dzięki za pomoc. – wadesworld

+0

Cóż, na pewno. Na przykład WinZip może używać AES i dokumentuje, jak to robi. http://www.winzip.com/aes_info.htm PKCS # 7 jest udokumentowany w RFC 2315. http://tools.ietf.org/html/rfc2315 MS-Word używa szyfrowania AES. http://download.microsoft.com/download/6/7/f/67f1ff44-f1c9-4fae-a451-4e803f7b727e/2007_Office_DocEncryption.docx Nie jestem pewien, czy masz na myśli określony format, czy ... chcesz wiedzieć o wielu formatach lub o czym. – Cheeso

Powiązane problemy