Этот проект - -шуточная- расово-верная фаза развития проекта https://pypi.org/project/shamir-mnemonic/0.1.0/
У вас есть симметричный ключ для шифрования, например, номеров банковских карт (pan) или канала с примерением симметричной схемы шифрования. Существуют достаточно хорошо зарекомендовавшие себя алгоритмы, типа AES128, AES256 итд. Однако, есть проблема: ключ надо как-то передать "на ту" сторону, с риском компрометации ключа. Схема Шамира позволяет разделить ключ на N частей полной длины таким образом, чтобы при вводе T частей, можно было восстановить исходный ключ.
Таким образом, достигается безопасность хранения секретного ключа (в ряде случаев возможна имплементация, при которой мастер-ключ не храниться нигде).
Вторая проблема: владельцы ключа должны запомнить длинную случайную последовательность (например, 16 байт). К сожалению, возможно, что владельцы будут записывать свой "секрет" на бумажке. Чтобы помочь владельцам ключей запомнить их, коллеги из Сатоши Лабс предложили методику мнемонического метода Шамира Он заключается в кодировании последовательности набором слов из определенного словаря. https://github.com/satoshilabs/slips/blob/master/slip-0039.md
В нашей имплементации, с небольшими изменениями, предложено использовать эффективный и хорошо запоминающийся словарь из набора популярных терминов и слов из современной жизни страны.
Нужно учесть тот факт, что набор слов может быть достаточно вычурным, и не является попыткой кого-то оскорбить.
Данная имплементация позволяет сразу получить и мастер-ключ, и "мнемотизированные" секреты, а значит, для имплементации в защищаемых решениях, должно быть модицифировано.
Цель данного кода - проверить корректность других имплементаций и просто приколоться.
Для защиты чувствительной информации вам потребуется имплементация, не палящая master-ключ!!!
Поставить с Github:
$ git clone https://github.com/vk4arm/python-shamir-ru-mnemonic.git
$ cd python-shamir-ru-mnemonic
$ pip3 install .
Если ПО было установлено, как приведено выше
$ pip3 uninstall shamir-ru-mnemonic
Вы можете использовать механизм получения разделенного мнемонического секрета из командной строки.
Внимание: мы не рекомендуем использовать скрипт коммандной строки для защиты чувствительных данных! Злоумышленние или системынй администратор может посмотреть созданный секретный ключ, что хорошо для отладки, и если вы доверяете своему системуному администратору (или живете в Санкт-Петербурге)
После того, как shamir_ru_mnemonic
установлен - вы можете использовать shamir
комманду следующим образом:
$ rushamir create 3of5 # создает 5 секретов, из которых 3 любых достаточно для восстановления ключа
$ rushamir recover # интерактивный механизм восстановления ключа (владельцы должны будут ввести свои секреты)
Вы можете ввести собственный ключ в виде 16-ричной строки:
$ rushamir create 3of5 --master-secret=cb21904441dfd01a392701ecdc25d61c
Вы можете специфицировать собственню схему. Например, для создания 3 групп с 2-из-3, 2-из-5, и 4-из-5, используйте:
$ rushamir create custom --threshold 3 --group 2 3 --group 2 5 --group 4 5
Используйте rushamir --help
or rushamir create --help
to see all available options.
Если вам нужно запустить консольную версию без установки сразу после чекаута, используйте:
$ python3 -m shamir_ru_mnemonic.cli
Стопудово будут в pro-версии )))) Сейчас скрипт generate_vectors дает ошибку, но вместо этого вы можете проверить вручную работу cli Делается это так:
- Данное ПО - поставляется как есть и не является сертифицированным средством защиты информации (хотя на его основе можно сделать)
2. Словарь - просто словарь. Каждое слово в отдельности - это просто слово, слов запрещенных пока нет, но мы готовы признать каждое отдельное слово преступлением и убрать его по первому обоснованному требованию.
- Наборы слов являются случайными. Они ничего не означают, но помогают запомнить часть секрета.
- Это просто забавно. Заранее простите.
lovetofire - за самый значительный вклад, душу проекта и нейтрализацию религиозных фанатиков-кибердиверсантов.
Святой Бонифаций - за старт, разгон, мотивацию большой вклад и ремонт
demeliorator - за организацию, оптимизм, отвагу и знания
педигий рептилоида - за воровство чужих идей и удаление из словаря термина "1с". Так же добавил в конец мнемонического отображения контрольной суммы для 128-битного кода слово "аминь"