Генератор парольних фраз Diceware
Генеруйте надійні парольні фрази, що легко запам'ятовуються, зі справжніх випадкових слів методом Diceware — справжня криптографічна випадковість, з чесно показаною ентропією в бітах.
Результат
Цей інструмент генерує парольні фрази за методом Diceware: замість щільного рядка випадкових символів, який важко набрати і ще важче запам'ятати, він з'єднує кілька звичайних слів, обраних незалежно й випадково. Парольна фраза на кшталт «forest-comet-lantern-guitar-oasis-thistle» несе справжню обчислювану ентропію, залишаючись при цьому чимось, що людина може прочитати вголос, набрати на клавіатурі телефону чи запам'ятати за кілька спроб — саме такий компроміс, навколо якого і побудований підхід Diceware.
Випадковість — це вся суть, тож до неї тут ставляться серйозно: кожне слово обирається за допомогою криптографічно захищеного генератора випадкових чисел браузера crypto.getRandomValues(), з правильним відбраковуванням при кожному вибірці. Сире 32-бітне випадкове значення приймається лише якщо воно потрапляє в діапазон, що ділиться рівно на довжину списку слів; значення в залишковій, нерівній частині відкидаються і перекидаються. Пропустити цей крок і просто робити значення % довжинаСписку означало б дуже незначно надавати перевагу словам з низьким індексом над словами з високим — тонке статистичне зміщення, яке наївна реалізація внесла б непомітно. Цей генератор ніколи не йде цим коротким шляхом.
Чесність щодо ентропії — друга половина задуму. Вбудований список слів містить 1821 унікальне, однозначне, повсякденне англійське слово — великий, репрезентативний список, але не саме той список із 7776 слів класичного проєкту Diceware, тож цей інструмент ніколи не заявляє знамениту цифру 12.9 біт на слово, яка стосується лише того точного списку. Натомість ентропія на слово обчислюється наживо як log2(довжина списку), що дає приблизно 10.8 біт на слово тут, і результат на екрані завжди показує повну формулу — кількість слів помножена на біти на слово, плюс чесний внесок будь-яких додатків — тож ви бачите точно, як отримано загальну суму, а не довіряєте маркетинговій цифрі.
Необов'язкові перемикачі трактуються з тією ж чесністю. Капіталізація кожного слова — це фіксоване, детерміноване правило, застосоване однаково щоразу, тож воно взагалі не додає реальної ентропії — зловмисник, який знає правило, нічого не виграє від незнання того, які літери великі, і інструмент прямо про це каже. Додавання випадкового двоцифрового числа, навпаки, є справжнім додатковим випадковим вибором серед 100 рівноймовірних значень, додаючи реальні й зазначені ~6.6 біта поверх слів. Усе обчислюється й відображається локально у вашому браузері без будь-якого сервера, тож згенерована вами парольна фраза ніхто, крім вас, не бачить.