12:21 Sat 11 Apr, Artem Chuprina wrote: > Murat D. Kadirov -> Russian Debian List @ Sat, 11 Apr 2009 13:31:27 +0600: > > MDK> Необхиодимо сгенерировать пароль с заданной энтропией. Возможна ли такая > MDK> генерация какими-нибудь системными тулзами, к примеру OpenSSL или чем-то > MDK> подобным. Такой функциональностью обладают некоторое ПО (к примеру, ПО > MDK> для хранения ключей), но хотелось бы чего-нибудь себя > MDK> зарекомендовавшего. OpenSSL было бы идеально, но как? > > MDK> 8-ми символьный пароль соответствует 32-битовой энтропии (это, кстати > MDK> объясняет мой давешний вопрос относительно вероятности быстрого > MDK> получения парольной фразы спец.службами. Прибавив к этому возможность > MDK> анализа побочных каналов и таковая операция становится более чем > MDK> реальна) > > MDK> Как вариант, можно использовать /dev/random, которое, в сущности > MDK> используется всем остальным ПО для этого. Но как из получаемого "мусора" > MDK> из /dev/random получить 98-ми символьную парольную фразу, которая > MDK> соответственно будет обладать 128-битной энтропией? > > На кой хрен 98-то? В предположении, что /dev/random выдает энтропию по
Понятия не имею. Цифры приведены из работы Б.Шнайера "Секреты и ложь. Безопасность данных в цифровом мире" (стр.102). Вот этот абзац: "Многие ключи создаются на основе паролей и ключевых фраз. Система, принимающая пароль из 10 ASCII-символов, предоставляет для него 80 бит, но её энтропия будет значительно меньше 80 бит. Некоторые символы ASCII никогда не появляются, а пароли, которые представляют собой реальные слова (или что-то похожее на слова), гораздо вероятнее, чем произвольные строки символов. Я видел оценки энтропии для английского языка, меньше 1.3 бит на символ; у пароля энтропии меньше, чем 4 бит на символ. Это значит, что пароль из 8 символов будет приблизительно соответствовать 32-битовому ключу, а если вы захотите 128-битовый ключ, вам нужен пароль из 98 символов (на базе английского алфавита)." Он там особо не распространяется в плане цифири, да и вообще работа носит больше публицистический характер. А самому всё это осилить не представляется возможным в силу сильно не технического образования. Я сейчас подумал, что говоря о таких цифрах (98 символов для 128 битового ключа) он, возможно, отталкивается от слабой энтропии на символ в пароле, т.е. пароль состоящий, к примеру из единиц и нулей вперемежку или что-то подобное. > 8 бит на байт (а он, по идее, под именно под это заточен - нет, там, > конечно, не факт, что столько, но способа отличить никто не знает, так > что для практических применений можно оценивать так), длина пароля со > 128-битной энтропией будет всего лишь 24 символа (ceil(128/8/3)*4). Можно чуток подробнее пояснить? Для человека не особо отягчённого математическими познаниями. То есть я понимаю, где-что делиться и умножается. Не понимаю логики(почему). Ну а ceil, видимо имеет отношение к программированию. В целом я с вами согласен. Такие программы, как keepassx или pwsafe генерируют 20-29 символьную парольную фразу для 128-битной энтропии (в зависимости от употребляемых символов: пробелы и проч.), т.е. и они работают приблизительно в соответствии с логикой выше приведённого вами вычисления. p.s. Google -- маниакальная поисковая система. Попробывал закинуть в поиск "ceil(128/8/3)*4" тут же выдал http://www.mail-archive.com/debian-russian@lists.debian.org/msg91318.html в первой строке. Боится видимо не успеть всё проиндексировать. -- Murat D. Kadirov
pgpNxhEsMn5c1.pgp
Description: PGP signature