448 бит это довольно много энтропии. Чтобы соответствовать безопасности ключа, фраза-пароль должна обеспечивать аналогичный уровень энтропии. Если есть какая-либо существенная разница в энтропии между ними, атакующий просто пойдет на атаку на то, что имеет меньшую энтропию.
Я не помню точную цифру, и она, вероятно, зависит от языка, но естественный язык имеет от 1 до 2 бит энтропии на символ.
Таким образом, чтобы достичь такого же уровня безопасности, как и действительно случайный 448-битный ключ, вам понадобится фраза-пароль порядка 300 символов. Оно также не должно быть известно никому другому или использовалось кем-либо еще, поэтому об известных цитатах, цитатах из ваших любимых книг и т.д. Практически не может быть и речи. Скорее всего, это будет первое, что кто-то бросит своему взломщику при попытке использовать его.
Для сравнения, чтобы получить требуемый уровень энтропии, вам понадобится пароль примерно длиной предыдущего абзаца. И вы должны быть в состоянии набрать его на 100% правильно, каждый раз, вполне возможно, не видя, что вы печатаете.
С действительно случайным паролем, составленным из набора из 85 символов (скажем, из набора Base85), вы смотрите примерно log2 (85) ~ 6,4 бит на символ. Таким образом, чтобы получить 448 бит, вам потребуется около 70 действительно случайных символов из набора из 85 символов.
Не обращая внимания на вопрос о том, имеет ли энтропийный пул столько истинной энтропии для начала, вы должны иметь возможность запомнить пароль и сохранить его в безопасности. Я бы осмелился вспомнить даже один действительно случайный пароль из 70 символов, состоящий практически из каждого печатного символа в наборе ASCII.
Там также вопрос о том, какой вектор атаки кто-то выберет. Никто не собирается атаковать 448-битный ключ с помощью пробного перебора и попыток расшифровки ошибок ; в настоящее время это просто недосягаемо для человечества и, возможно, навсегда, из-за простой физики. Любая атака на такую криптографию будет осуществляться с помощью других методов, будь то атаки по побочным каналам, криптография с резиновым каналом (на примере XKCD), откровенное воровство (не смейтесь!), Атаки с использованием шифрования более эффективные, чем грубая атака, или что-то еще. Гораздо проще нанять нескольких головорезов, чтобы проникнуть в ваш дом и украсть ноутбук, чем атаковать правильно реализованную даже 128-битную симметричную криптографию.
Что приводит нас к:
Кажется, что разница между вариантом 2 и 3 заключается в том, что, в случае варианта 3, мне нужно хранить копию этого файла ключей, что является громоздким (по сравнению с паролем). У меня такой вопрос: насколько безопаснее вариант 3?
На практике с обоими вариантами (безопасное парольное шифрование файла локально и защищенный ключевой файл, локально шифрующее файл) вам придется защищать копию материала ключа. Так из "насколько это громоздко?С точки зрения, они примерно одинаковы. С точки зрения безопасности, это сводится к количеству энтропии в секретном материале (ключевой файл или фраза-пароль).
Так:
Если вы беспокоитесь о том, что кто-то получит доступ к вашим файлам в Dropbox, используйте локально сохраненный файл ключей и зашифруйте файлы перед загрузкой. Это будет более удобно для вас, но если злоумышленник сможет получить доступ к вашему компьютеру, он, конечно же, получит файл ключа. Вы можете частично обойти эту проблему, комбинируя файл ключа с более простым паролем или парольной фразой.
Если вы беспокоитесь о краже вашего компьютера, используйте надежную парольную фразу, которая не существует и никогда не существовала на вашем компьютере за пределами этого конкретного использования. Злоумышленнику будет гораздо сложнее, так как они должны будут убедить вас раскрыть ключевую фразу. Обратите внимание, что это не должно быть трудным; может быть достаточно нескольких намеков на то, что происходит с людьми, защищающими террористов, или на несколько хорошо налаженных связей со СМИ, что человек, соответствующий вашему описанию, расследуется на предмет жестокого обращения с детьми, или что-то в этом роде, может быть достаточно.
Если вас беспокоит то и другое, тогда используйте оба, предполагая, что программное обеспечение позволяет вам это делать.