One Time Pad с функцией DH и криптографической хэш-функцией?

Я знаю: никогда не делай свой собственный крипто.

Но этот вопрос только теоретический.

Предположим, вы выполняете обмен ключами Диффи-Хеллмана с сервером для создания общего секрета. x, Затем используйте криптографическую хеш-функцию, такую ​​как sha3, для генерации псевдослучайного потока битов, подобного следующему: p_i = sha3(x||p_(i-1)),

Чтобы зашифровать данные, просто скопируйте все исходящие пакеты с соответствующими p_i, Я понимаю, что ключевой поток для otp должен быть полностью случайным, чтобы гарантировать возможность взлома, но будет ли эта схема, по крайней мере, такой же трудной для взлома, как базовая хеш-функция или DH?

На мой взгляд, так и должно быть, но я плохо знаком с крипто, поэтому, пожалуйста, докажите, что я не прав:)

Поскольку общий секрет используется только для одного сеанса и предполагается, что хеш-функция является случайным оракулом, ни один поток ключей никогда не используется дважды. В том числе x в каждом p_i злоумышленник должен разорвать (а не только найти конфликт) первый отправленный пакет, чтобы расшифровать оставшуюся часть сеанса, разрыв любого другого пакета, скорее всего, будет коллизией и не выдаст необходимый xтолько содержимое этого пакета. Кроме того, для взлома любого пакета требуется, по крайней мере, знание открытого текста, но он дает вам только этот конкретный хеш, а не предыдущий / следующий хеш.

Спасибо,

затирать

2 ответа

Прочитайте эту ссылку, там есть анализ безопасности такой конструкции.

Вы разработали еще один Stream Cypher. Это будет работать? Вероятно, да, если правильно реализовано. Будет ли это безопасно? Почти наверняка нет. Для обеспечения безопасности OTP требуется ключ до тех пор, пока он имеет открытый текст. Если ваш общий секрет пока не открыт, ваш шифр уязвим перед грубой силой. Вероятно, у него будут и другие уязвимости.

ETA: Возможно, вы захотите исследовать шифр Бернштейна Snuffle.

Другие вопросы по тегам