Использование дополнительной энтропии из (полу) ненадежных источников - PullRequest
0 голосов
/ 25 марта 2020

Допустим, у меня есть программа, которая генерирует секретные ключи. Важно, чтобы эти секретные ключи были криптографически надежными.

Теперь эта программа будет использоваться на многих разных компьютерах, и я подозреваю, что, по крайней мере, на некоторых из них генератор случайных чисел будет иметь недельную заселенность (например, виртуальная машина), или просто прямо сломанный.

Так что я рассматриваю дополнительное усиление, выбирая некоторую энтропию из сторонних источников, хешируя это и "XORing it" с моей локально генерируемой энтропией.

Вопрос в следующем: действительно ли это хорошая идея?

Я вижу это так:

  • Если локальный генератор случайных чисел работает правильно, сторонние поставщики энтропии никак не может ослабить окончательную энтропию, даже если они посылают «злую» энтропию. Кроме того, любой злоумышленник не может ничего получить, перехватив при этом предоставленную энтропию при передаче.
  • Если локальный генератор случайных чисел действительно был плохим, любой честный сторонний поставщик энтропии, который правильно отправил случайную энтропию, сохранит итоговую энтропию. из недели И пока злоумышленник не смог его перехватить, пользователь спасен от использования слабого секретного ключа.

Это правильные выводы?

Кроме потенциальных нарушений конфиденциальности , есть ли что-то еще, о чем нужно беспокоиться?

...