Забавный факт про сложность пароля
От: vsb Казахстан  
Дата: 20.11.22 22:04
Оценка:
Тему можно удалить, я не умею считать, извините.

  тут неправильно
Вы требуете пароль. Вы требуете символы A-Z и a-z. Каждый символ из этой группы должен встречаться в пароле хотя бы раз. Длина пароля 12 символов.

Сложность пароля в битах (энтропия): log2(26) + log2(26) + 10 * log2(52) = 4.7 + 4.7 + 10 * 5.7 = 66.4

Вы решаете усложнить требования и добавляете туда 0-9, сохраняя длину пароля 12.

Сложность пароля: log2(26) + log2(26) + log2(10) + 9 * log2(62) = 4.7 + 4.7 + 3.32 + 9 * 5.95 = 66.3

Итого в попытке усложнить пароль вы его... упростили.

Это в огород тем, кто на своих сайтах прописывает упоротые требования по сложности пароля.
Отредактировано 20.11.2022 22:41 vsb . Предыдущая версия . Еще …
Отредактировано 20.11.2022 22:05 vsb . Предыдущая версия .
Отредактировано 20.11.2022 22:05 vsb . Предыдущая версия .
Re: Забавный факт про сложность пароля
От: rudzuk  
Дата: 20.11.22 22:21
Оценка:
Здравствуйте, vsb, Вы писали:

vsb> Это в огород тем, кто на своих сайтах прописывает упоротые требования по сложности пароля.


Чего-то ты не то насчитал. Чем больше алфавит тем больше энтропия на символ.
avalon/3.0.1
Re: Забавный факт про сложность пароля
От: Pzz Россия https://github.com/alexpevzner
Дата: 20.11.22 22:28
Оценка: +13
Здравствуйте, vsb, Вы писали:

vsb>Это в огород тем, кто на своих сайтах прописывает упоротые требования по сложности пароля.


Забавный факт про сложность пароля заключается в том, что чем больше админы выламывают руки пользователям, усложняя пароль, тем больше шансов, что получившийся пароль будет написан на желтой бумажке и приклеен к монитору.
Re[2]: Забавный факт про сложность пароля
От: vsb Казахстан  
Дата: 20.11.22 22:29
Оценка:
Здравствуйте, rudzuk, Вы писали:

vsb>> Это в огород тем, кто на своих сайтах прописывает упоротые требования по сложности пароля.


R>Чего-то ты не то насчитал. Чем больше алфавит тем больше энтропия на символ.


Это если ты допускаешь отсутствие некоторых групп в пароле.

Вот простой пример:

Пароль из двух символов a-z. 26 * 26 = 676 вариантов.

Добавляем 0-9.

Если мы требуем цифру и букву в пароле, то у нас получается 10 * 26 паролей, или 260 вариантов.

Вот если бы мы принимали и цифровы и буквенные и цифро-буквенные пароли, то, да, было бы 36 * 36 = 1296 вариантов. Но если сайт требует цифру в пароле, то он не примет пароль без цифры.

Впрочем ты прав, я не учёл перестановки. Надо покумекать, формула посложней получается. Для примера выше это всё ещё справедливо: на самом деле там 10 * 26 + 26 * 10 = 520 вариантов, что меньше 676.

Видимо мои исходные вычисления были неправильные, исправлю, когда правильную формулу найду.
Отредактировано 20.11.2022 22:31 vsb . Предыдущая версия .
Re[2]: Забавный факт про сложность пароля
От: Pzz Россия https://github.com/alexpevzner
Дата: 20.11.22 22:30
Оценка:
Здравствуйте, rudzuk, Вы писали:

vsb>> Это в огород тем, кто на своих сайтах прописывает упоротые требования по сложности пароля.


R>Чего-то ты не то насчитал. Чем больше алфавит тем больше энтропия на символ.


Это если все символы в алфавите равноценны. Если же они разбиты на группы и с тебя требуют неприменно взять хотя бы по одному символу из каждой группы, то это вносит в пароль определенную структуру и, тем самым, уменьшает его энтропию.
Re[2]: Забавный факт про сложность пароля
От: ути-пути Россия  
Дата: 21.11.22 04:49
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Забавный факт про сложность пароля заключается в том, что чем больше админы выламывают руки пользователям, усложняя пароль, тем больше шансов, что получившийся пароль будет написан на желтой бумажке и приклеен к монитору.


Бумажка — это для повседневного ввода пароля, вроде входа в домен на работе. Для остального обычно на рабочем столе лежит файл "пароли.txt", оттуда копипастить намного проще. И нет, keepass и подобный софт вообще не приживается, только простой нешифрованный текст.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[2]: Забавный факт про сложность пароля
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 28.11.22 01:36
Оценка:
Здравствуйте, Pzz, Вы писали:

vsb>>Это в огород тем, кто на своих сайтах прописывает упоротые требования по сложности пароля.


Pzz>Забавный факт про сложность пароля заключается в том, что чем больше админы выламывают руки пользователям, усложняя пароль, тем больше шансов, что получившийся пароль будет написан на желтой бумажке и приклеен к монитору.


Я такой за пару месяцев таки выучил Но самый прикол в том, что обычно у таких админов стоит политика принудительно менять пароли раз в несколько месяцев
Маньяк Робокряк колесит по городу
Re: Забавный факт про сложность пароля
От: νsb Казахстан  
Дата: 28.11.22 02:29
Оценка: 15 (1)
Если вдруг кому будет нужна правильная формула, то описание ниже:

Итак постановка задачи: у нас генерируется пароль из m групп символов длиной n символов, m <= n. Группы символов не пересекаются, размер каждой группы x_i символов. К примеру пароль длиной 8 из больших, маленьких букв и цифр, m = 3, n = 8, x = [26, 26, 10]. Также дополнительное условие — в пароле должен быть хотя бы один символ из каждой группы.

Вопрос — сколько таких паролей может быть.

Ответ (без доказательств): рассмотрим выражение (x_1 + x_2 + ... + x_m)^n. Если раскрыть скобки, получится сумма элементов вида C(n,k_1,...,k_n) * x_1^k_1 * x_2^k_2 * ... * x_m^k^m. Ну к примеру (x_1 + x_2)^2 = C(2, 2, 0) * x_1^2 * x_2^0 + C(2, 1, 1)*x_1^1*x_2^1 + C(2, 0, 2)*x_1^0*x_2^2 = x_1^2 + 2*x_1*x_2 + x_2^2. Суммирование идёт для всех сочетаний k_1, ..., k_m таких, что k_i >= 0, k_1 + ... + k_m = n. C(n,k_1,...,k_n) = n! / (k_1! * k_2! * ... * k_n!). Это в принципе известная формула.

Далее в этой формуле в её правом выражении выбрасываем все слагаемые, у которых k_i = 0. Иными словами вместо k_i >= 0 пишем k_i > 0. Вот эта сумма нам и даст ответ на исходный вопрос.

Как это выражение записать компактней, я не придумал. Ниже код на JavaScript, который вычисляет значение этого выражения "в лоб". Но для больших n будет довольно долго работать.

    function calculateTotalPasswordCount(characterGroups, length) {
      const m = characterGroups.length;
      const n = length;
      const x = [];
      for (let i = 1; i <= m; i++) x[i] = BigInt(characterGroups[i - 1].length);

      /*
      * s =
      * \sum_{k_1 + k_2 + \cdots + k_m = n;\ k_1, k_2, ..., k_m > 0 }
      * \frac{n!}{k_1! k_2! \cdots k_m!}
      * \prod_{i=1}^{m}x_i^{k_i}
      */

      const f = []; // f[i] = i!
      f[1] = 1n;
      for (let i = 2; i <= n; i++) f[i] = f[i - 1] * BigInt(i);

      const xp = []; // xp[i][j] = x[i] ** j
      for (let i = 1; i <= m; i++) {
        xp[i] = [];
        xp[i][1] = x[i];
        for (let j = 2; j <= n - m + 1; j++) {
          xp[i][j] = xp[i][j - 1] * x[i];
        }
      }

      let s = 0n
      const k = [];
      for (let j = 1; j <= m - 1; j++) k[j] = 1;
      k[m] = n - m + 1;

      while (true) {
        let fk = 1n; // fk = k_1! k_2! ... k_m!
        for (let i = 1; i <= m; i++) fk *= f[k[i]];

        let sk = 1n; // sk = x_1^{k_1} x_2^{k_2} ... x_m^{k_m}
        for (let i = 1; i <= m; i++) sk *= xp[i][k[i]];

        s += f[n] / fk * sk;

        let j = m - 1;
        while (j > 0 && k[m] === 1) {
          k[m] += k[j] - 1;
          k[j] = 1;
          j--;
        }
        if (j === 0) break;
        k[j]++;
        k[m]--;
      }

      return s;
    }

    calculateTotalPasswordCount(["abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "0123456789"], 12)
Отредактировано 28.11.2022 2:40 vsb . Предыдущая версия . Еще …
Отредактировано 28.11.2022 2:38 vsb . Предыдущая версия .
Отредактировано 28.11.2022 2:32 vsb . Предыдущая версия .
Re[3]: Забавный факт про сложность пароля
От: Вумудщзук Беларусь  
Дата: 28.11.22 07:17
Оценка: +1
> Но самый прикол в том, что обычно у таких админов стоит политика принудительно менять пароли раз в несколько месяцев
а это неизбежно приводит к паролям вида oldpass, oldpass1, oldpass2, ...
Re[4]: Забавный факт про сложность пароля
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 28.11.22 07:20
Оценка: :)
Здравствуйте, Вумудщзук, Вы писали:

>> Но самый прикол в том, что обычно у таких админов стоит политика принудительно менять пароли раз в несколько месяцев

В>а это неизбежно приводит к паролям вида oldpass, oldpass1, oldpass2, ...

Ну так в политиках можно выставить ограничения, в том числе и запрет на использование старых паролей. Вроде и похожесть можно проверять, хотя как это сделать без явного хранения пароля, я хз
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.