О каком языке речь?
Речь была о любом естественном языке типа русского или английского. Наборы из 256 произвольных байт нормальный человек не запомнит.
2) Теперь про память. Прямой доступ к памяти (DMA) и виртуальная память наверняка снимут все затруднения c памятью для взломщиков. Физические характеристики устройства не важны.
DMA не обеспечивает миллион параллельных каналов доступа к массиву памяти. Шина всё равно одна.
Я так думаю, что на сегодняшний день такого технического решения нет, поэтому алгоритм Scrypt можно считать условно надёжным. Но наверняка в скором времени появятся терабайтные массивы памяти, разбитые на блоки по 16Мб с параллельным доступом, и тогда Scrypt-у хана.
3) И еще про вычислительные ресурсы. Хакерам, например, не доступны суперкомпы, но грид с успехом их заменяет.
FPGA, а тем паче графические процессоры нынче всем доступны. А авторитетным госструктурам оные доступны в больших количествах.
4) Случайные и псевдослучайные последовательности - очень трудная проблема для многих криптоалгоритмов.
Что Вы имеете в виду? Последовательное применение любой хэш-функции к значению, полученному на предыдущем шаге, это и есть псевдослучайная последовательность. Во всех алгоритмах KDF применяется такой подход (при условии, что шагов итерации должно быть достаточно много, чтобы достичь достаточной вычислительной сложности). Какая в этом проблема?
Или Вы имели в виду, что будут сложности при автоматическом генерировании достаточно случайной passphrase? Тут я согласен. В этом случае псевдослучайные последовательности не помогут. А рандомизация, например, на основании показаний таймера (даже с точностью до микросекунд) даёт слишком мало вариантов.
А теперь нужно уточнить задачу: 1) нужно ли учитывать возможность кражи пароля с помощью клавиатурного шпиона? 2) нужно ли учитывать возможность кражи ключа с помощью трояна?
1) нет 2) нет. Здесь рассматривается только защита от подбора пароля. Риски кражи — за пределами темы.
У меня нет ничего против KDF, предполагаю, что этот метод может принести большую пользу, но грамотно использовать его обычному пользователю вряд ли возможно.
Обычному пользователю не составит труда использовать готовый софт. Единственная проблема (вполне разрешимая) состоит в том, что ему нужно знать, какой софт надёжен.
Лучше всего ключ на сменном носителе и на чистом компьютере :)
Ключ на любом носителе (хоть на сменном, хоть на бумажном) можете автоматически считать уже переданным в руки противникам.
Здесь рассматривается случай, когда вся необходимая для аутентификации информация (пароль) находится только в голове пользователя и нигде больше.