>  > /*      Для шифрования AES требуется 128,192,256-битный ключ
>  > для этого возьмем инвертированные байты пароля и повторим
>  > его если он меньше 16 символов и получим 128 бит
>  > */
> 
>       Во-первых, предполагая, что пароль состоит из кодов ASCII,
>       пространство ключей при таком подходе значительно ограничено (по
>       сравнению с предельными для алгоритмов AES 2¹²⁸ … 2²⁵⁶.)
>       Во-вторых, значимыми оказываются только первые 16 октетов
>       пароля.
> 
>       Общепринятое решение — использовать в качестве ключа криптохэш
>       от пароля.  E. g., SHA-256.

Там, надо сказать, значимых битов будет не больше, потому что хэширование не
добавляет энтропии.  Может быть, правда, перебор дороже, но учитывая, что
такие пароли и перебирают соответственно - а именно, составляя таблицы этих
хэшей заранее...  А AES к степени, гм, взбитости энтропии в ключе должен
относиться иррелевантно.  В смысле, ему должно быть пофиг, открытым текстом
там пароль или хэшированный.  Хэшируют для того, чтобы всосать побольше бит из
длинной пассфразы.  Более длинной, чем ключ AES.  Вот тут простые средства
наложения, типа xor, могут ухудшить показатели (типа, в x xor x меньше
энтропии, чем просто в x), а хэш себя ведет хорошо, он для этого
разрабатывался.

-- 
There's no sense in being precise, when you don't even know what
you're talking about.
 -- John von Neumann


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/877h3hjqh4.wl%...@ran.pp.ru

Ответить