При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 11 символов. Из соображений информационной
Вопрос от пользователя
При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 11 символов. Из соображений информационной безопасности каждый пароль должен содержать хотя бы 2 десятичных цифры, как прописные, так и строчные латинские буквы, а также не менее 2-х символов из 6-символьного набора: «&», «#», «$», «*», «!», «@». В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственно
пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байт; это число одно и то же для всех пользователей. Для хранения сведений о 30 пользователях потребовалось 900 байт. Сколько байт выделено для хранения дополнительных сведений об одном пользователе? В ответе запишите только целое число – количество байт.
Ответ от эксперта
1. если бы мы знали точно, сколько цифр и сколько специальных символов содержит пароль и где точно они расположены, можно было бы использовать «раздельное» кодирование: на кодирование цифр использовать по 4 бита (2^4 > 10), на кодирование спецсимволов – по 3 бита (2^3 > 6), а на кодирование остальных символов (латинских букв) – по 6 бит (2^6 > 26•2=52)
2. поскольку количество и месторасположение цифр и спецсимволов а пароле неизвестно, нужно рассматривать полный набор символов: 10 + 6 + 26•2 = 68
3. при этом на каждый символ нужно выделить 7 бит (2^7 > 68)
4. на 11 символов пароля выделяется 77 бит, округляя вверх до целого числа байт получаем 10 байт (80 бит) на пароль
5. на одного пользователя выделяется 900 : 30 = 30 байт
6. на дополнительную информацию остается 30 – 10 = 20 байт
ответ: 20.