Колко практично би било да шифровате многократно даден файл?

В момента експериментирам както с криптиране с публичен ключ, така и с криптиране на лични файлове. Програмите, които използвам, имат съответно 2048 bit RSA и 256 bit AES ниво на криптиране. Като начинаещ в тези неща (само cypherpunk съм от около месец сега - и съм малко нов в информационните системи) не съм запознат с RSA алгоритмите, но това не е от значение тук.

Знам, че освен ако някоя тайна лаборатория или програма на NSA не разполага с квантов компютър, в момента е невъзможно да се хакне с груба сила нивото на сигурност, което тези програми предоставят, но се чудех колко по-сигурно би било да шифровате файл и отново.

Накратко това, което бих искал да знам е следното:

  1. Когато криптирам файл с помощта на 256-битов AES и след това криптирам вече криптирания файл още веднъж (използвайки отново 256), сега имам ли еквивалента на 512-битова AES защита? Това до голяма степен е въпрос на това дали броят на възможните ключове, които методът на груба сила потенциално би трябвало да тества, ще бъде 2 x 2 на 256-та степен или 2 на 256-та степен на квадрат. Като съм песимист, мисля, че е първото, но се чудех дали 512-AES наистина е постижимо чрез просто криптиране с 256-AES два пъти?
  2. След като един файл е криптиран няколко пъти, така че трябва да продължите да използвате различни ключове или да продължите да въвеждате пароли на всяко ниво на криптиране, би ли някой** дори разпознал дали е преминал през първото ниво на криптиране? Мислех си, че може би - ако някой трябва да криптира файл няколко пъти, изисквайки няколко различни пароли - кракерът няма да има никакъв начин да разбере дали дори е пробил първото ниво на криптиране, тъй като всичко, което ще имат, все още ще бъде криптирано файл.

Ето един пример:

  • Дешифриран файл
  • DKE$jptid UiWe
  • oxfialehv u%uk

Престорете се за момент, че последната последователност е това, с което кракерът трябваше да работи - за да се върне обратно към оригиналния файл, резултатът, който трябваше да получи (преди кракване през следващото ниво на криптиране), пак ще се появи да бъдат напълно безполезен файл (вторият ред), след като пробият първото ниво на криптиране. Означава ли това, че всеки, който се опитва да използва груба сила, няма да има начин да се върне към оригиналния файл, тъй като вероятно ще види нищо друго освен криптирани файлове?

Това са основно два въпроса, които се занимават с едно и също нещо: ефектът от шифроването на един и същи файл отново и отново. Търсих в мрежата, за да разбера какъв ефект има многократното криптиране върху защитата на даден файл, но освен че прочетох анекдот някъде, че отговорът на първия въпрос е не, не намерих нищо, което да се отнася до второто завъртане на същата тема . Особено съм любопитен за последния въпрос.

**Ако приемем хипотетично, че по някакъв начин грубо са си пробили път през слаби пароли - тъй като това изглежда е технологична възможност с 256-AES в момента, ако знаете как да направите сигурни...


person RJ Miller    schedule 05.10.2010    source източник


Отговори (3)


Като цяло, ако шифровате файл с k-bit AES и след това отново с k-bit AES, вие получавате само (k+1) бита сигурност, вместо 2k бита сигурност, с атака "човек по средата" . Същото важи и за повечето видове криптиране, като DES. (Имайте предвид, че triple-DES не е просто три кръга криптиране поради тази причина.)

Освен това, криптирането на файл с метод A и след това с метод B не трябва да бъде дори толкова силно, колкото криптирането само с метод B! (Това рядко би било така, освен ако метод А не е със сериозни недостатъци.) За разлика от това, гарантирано е, че сте поне толкова силни, колкото метод А. (Всеки, който си спомня името на тази теорема, се насърчава да остави коментар; I' забравих.)

Обикновено е много по-добре просто да изберете един възможно най-силен метод.


За втория ви въпрос: Да, с повечето методи нападателят ще разбере, че първият слой е бил компрометиран.

person Charles    schedule 05.10.2010
comment
Ако използвате различен ключ за всеки кръг на криптиране, това все още ли е така? Какво ще кажете за други общи алгоритми? - person Sean A.O. Harney; 05.10.2010
comment
Ако използвате същия ключ, той е k бита (без промяна). Ако използвате различни ключове, k + 1. Ако използвате два различни алгоритъма, и двата с k бита, това обикновено е k + 1. - person Charles; 05.10.2010
comment
Като игнорираме атаки от среща по средата, това обикновено вярно ли е за ефективната сигурност? За наивна атака с груба сила изглежда ключовото пространство ще бъде с размер 2^(256+256) за два кръга от 256-битов ключ (който всъщност използва всичките 256 бита към ключа). - person Sean A.O. Harney; 05.10.2010
comment
Ако пренебрегнете специални атаки, да, двете добавят. Но не бих ги пренебрегнал, особено когато дават 255-битов прекъсване... - person Charles; 05.10.2010

Още мнения тук...

Първо, когато компютърът е достатъчно силен, за да извърши атака с груба сила на AES-256 например, това ще бъде и за повторения на същото... удвояването или утрояването на времето или усилията е незначително на това ниво.

На следващо място, подобни съображения могат да бъдат невалидни в зависимост от приложението, в което се опитвате да използвате това криптиране... „Тайните“, които ще трябва да носите, стават по-големи (брой повторения и всички различни ключове, от които ще се нуждаете, ако всъщност те са различни), времето за извършване на криптиране и декриптиране също ще трябва да се увеличи.

Моето предположение е, че повторението на криптирането не помага много. Или алгоритъмът е достатъчно силен, за да поддържа прикачване с груба сила, или не е. Останалото е в защитата на ключовете.

По-практично, смятате ли, че къщата ви е по-защитена, ако имате три еднакви или подобни ключалки на входната си врата? (и това включва брой ключове, които да носите със себе си, не губете тези ключове, уверете се, че прозорците и задната врата също са обезопасени...)

person Matthieu    schedule 05.10.2010

Въпрос 1: Размерът на пространството за решение ще бъде същият за две преминавания на 256-битовия ключ като 512-битовия ключ, тъй като 2^(256+256) = 2^512

Действителното време на работа на всеки decrypt() може да се увеличи нелинейно с нарастването на размера на ключа (ще зависи от алгоритъма), в този случай мисля, че грубото форсиране на 256+256 ще работи по-бързо от 2^512, но пак би било неосъществимо.

Въпрос 2: Вероятно има начини за идентифициране на определен шифрован текст. Не бих се изненадал, ако много алгоритми оставят някакъв подпис или артефакти, които могат да се използват за идентификация.

person Sean A.O. Harney    schedule 05.10.2010