- методика может быть использована для любого семени. Любое количество слов в семени или словаря. В программном или аппаратном бумажнике.
- Шифрование и дешифрование просто и может быть сделано с ручкой и бумагой, если вы хотите. Я также сделал питон Scrypt для шифрования (раскола) и дешифрования (reassamble).
- Обе части содержит только слова, и выглядит как обычный семени. Нет необходимости, чтобы написать серию случайных символов, который подвержен ошибкам.
- Методика основана на шифровании с планшетом один раз.
Я покажу вам, как это делается вручную. Прежде всего, необходимо семя:
парк цвет ломтик торговля удалить зависят луговые часы автобуса любопытных, где, где
Вы можете создать второе семя, которое будет использовать для шифрования. Я называю это семя: "Шифрование посевной", Это один из двух части разделенного семени. На электруме я использую команду make_seed для его генерации:
богиня комок возобновляет требует древесины тангаж кредита благословить носок намека экологию закончить
Чтобы создать вторую часть, которую я называю "Семя шифрования B", Вам нужен файл словаря, используемый в бумажнике. Большую часть времени кошельков с помощью https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/english.txt. Для каждого слова в семени твоем и в вашем "Шифрование посевной", Вам нужно количество слов в словаре. Первое слово является номером 1 и последний из которых является 2048.
семена:
Код:
парк цвет ломтик торговля удалить зависят луговые часы автобуса любопытных, где, где
1282 365 1627 1845 1455 471 1101 247 347 431 2002 2002
1282 365 1627 1845 1455 471 1101 247 347 431 2002 2002
Шифрование семян A:
Код:
богиня комок возобновляет требует древесины тангаж кредита благословить носок намека экологию закончить
801 354 1457 1464 1809 1324 1048 189 1648 862 560 696
801 354 1457 1464 1809 1324 1048 189 1648 862 560 696
Наконец, чтобы получить "Семя шифрования B" для каждого слова необходимо вычислить индекс (word_seed) - индекс (word_encryption_a)% 2048.
ecryption семян Б:
Код:
11 170 481 381 1694 1195 53 58 747 1617 1442 1306
уничтожить аварии лучше готовить стабильные красиво позволяют также иней эскиз люди реформы
уничтожить аварии лучше готовить стабильные красиво позволяют также иней эскиз люди реформы
Теперь вы можете написать "Шифрование посевной" а также "Семя шифрования B" на отдельном листе бумаги. Перед удалением вы семя вы должны проверить расшифровку. Вам просто нужно шифрование семян A и B и вычислить индекс (word_encryption_a) + индекс (word_encryption_b)% 2048. Теперь вы можете безопасно удалить семена и скрыть как семена шифрования в разных местах.
Вот скрипт Python, который делает расщепление и reassambly:
Код:
#! / USR / бен / python3
импорт SYS, Getopt
с открытой ( «English.txt») в файле:
слова = file.read (). splitlines ()
Защиту validate_seed (семя):
за словом в семенах:
если слово не в словах:
печать (слово «не является допустимым BIP39 слова»)
sys.exit (1)
Использование четкости ():
печать ( «Если вы хотите, чтобы склеп семени: crypt_seed.py»)
печать ( «Если вы хотите, чтобы расшифровать семя: crypt_seed.py -d»)
если Len (sys.argv) == 2:
Arg = sys.argv [1]
если ARG в ( '-h' '--help'):
Применение()
Элиф ARG в ("-d", "--decrypt"):
encryption_seed_a = вход ( 'Введите ваше шифрование засева:') .split ()
validate_seed (encryption_seed_a)
encryption_seed_b = вход ( 'Введите ваш посевное шифрование B:') .split ()
validate_seed (encryption_seed_b)
Семя = «»
для г, word_a в перечисление, (encryption_seed_a):
index_a = words.index (word_a)
index_b = words.index (encryption_seed_b [I])
index_seed = (index_a + index_b)% 2048
word_seed = слова [index_seed]
семян + = word_seed + ''
печать ( «Ваше семя:», семя)
еще:
печать ( «Непризнанный аргумент»)
Применение()
еще:
Семя = вход ( 'Введите ваше семя:') .split ()
validate_seed (семена)
encryption_seed_a = вход ( 'Введите посевное шифрование A:') .split ()
validate_seed (encryption_seed_a)
encryption_seed_b = ''
для я, word_seed в перечисление, (семени):
index_seed = words.index (word_seed)
index_a = words.index (encryption_seed_a [I])
index_b = (index_seed - index_a) 2048%
word_b = слова [index_b]
encryption_seed_b + = word_b + ''
печать ( «семя твое шифрование Б:», encryption_seed_b)
импорт SYS, Getopt
с открытой ( «English.txt») в файле:
слова = file.read (). splitlines ()
Защиту validate_seed (семя):
за словом в семенах:
если слово не в словах:
печать (слово «не является допустимым BIP39 слова»)
sys.exit (1)
Использование четкости ():
печать ( «Если вы хотите, чтобы склеп семени: crypt_seed.py»)
печать ( «Если вы хотите, чтобы расшифровать семя: crypt_seed.py -d»)
если Len (sys.argv) == 2:
Arg = sys.argv [1]
если ARG в ( '-h' '--help'):
Применение()
Элиф ARG в ("-d", "--decrypt"):
encryption_seed_a = вход ( 'Введите ваше шифрование засева:') .split ()
validate_seed (encryption_seed_a)
encryption_seed_b = вход ( 'Введите ваш посевное шифрование B:') .split ()
validate_seed (encryption_seed_b)
Семя = «»
для г, word_a в перечисление, (encryption_seed_a):
index_a = words.index (word_a)
index_b = words.index (encryption_seed_b [I])
index_seed = (index_a + index_b)% 2048
word_seed = слова [index_seed]
семян + = word_seed + ''
печать ( «Ваше семя:», семя)
еще:
печать ( «Непризнанный аргумент»)
Применение()
еще:
Семя = вход ( 'Введите ваше семя:') .split ()
validate_seed (семена)
encryption_seed_a = вход ( 'Введите посевное шифрование A:') .split ()
validate_seed (encryption_seed_a)
encryption_seed_b = ''
для я, word_seed в перечисление, (семени):
index_seed = words.index (word_seed)
index_a = words.index (encryption_seed_a [I])
index_b = (index_seed - index_a) 2048%
word_b = слова [index_b]
encryption_seed_b + = word_b + ''
печать ( «семя твое шифрование Б:», encryption_seed_b)