[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Генерация приватного ключа с заданной энтропией



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

Attachment: pgpVQEm1yKHE3.pgp
Description: PGP signature


Reply to: