3

По сути, я хочу знать, какой алгоритм шифрования сегодня самый сильный (самый сложный для взлома). То же самое касается алгоритма хеширования. Допустим, я тоже выбрал сверхсильный пароль (бонус: как долго это безопасный пароль с алгоритмом шифрования?) Для части алгоритма шифрования. Мне все равно, сколько времени это займет, или является ли это "стандартом" сегодняшнего дня (например: я слышал, что AES является "стандартом", но это не самый безопасный алгоритм там), просто до тех пор, пока это непробиваемо.

ОБНОВЛЕНИЕ: я понимаю, что это очень общий вопрос, поэтому позвольте мне немного сузить его. Допустим, я пытаюсь безопасно переписываться с кем-то или просто не хочу, чтобы кто-нибудь расшифровал мой текст, и я хочу, чтобы он был настолько безопасным, насколько это возможно в настоящее время. Какой тип алгоритма шифрования мне следует рассмотреть, какой размер ключа, какой битовый размер и какой конкретный алгоритм следует использовать? То же самое касается хеширования.

ОБНОВЛЕНИЕ: Чтобы сузить это, скажем, что у «Боба» в этом случае есть закрытый ключ, который знает только он. Допустим, всем в мире была предоставлена копия зашифрованного сообщения, но только «Боб» должен был иметь возможность его расшифровать.

(Я понимаю, что это может показаться сомнительным, но это все гипотетическая ситуация.)

2 ответа2

2

На вопрос действительно невозможно ответить. Не существует универсального понятия алгоритмической "силы". Сила - это, по сути, сопротивление атаке. Поскольку существуют различные категории атак, сила зависит от того, каким атакам вы должны противостоять. Нет предела тому, насколько сильным может быть алгоритм шифрования или хэширования, если у вас нет требований. Хитрость заключается в том, чтобы найти самый сильный (или достаточно сильный) алгоритм, который удовлетворяет определенным требованиям.

В некоторых приложениях конкретные "атаки" не имеют значения, поскольку они не влияют на требования. Например, может существовать алгоритм хеширования, который очень, очень силен против всего, против атак с удлинением длины. Это может сделать его самым мощным алгоритмом для приложения, в котором атаки с удлинением длины не имеют значения (например, подписывание хэшей), но совершенно не подходят для того, где они делают (например, ключи API).

Кроме того, существуют совершенно разные категории алгоритмов шифрования с совершенно разными свойствами. Например, существуют симметричные и асимметричные алгоритмы шифрования.

Обновление 1: вы все еще не предоставляете нам самую основную информацию. Чтобы шифрование работало, должно быть что-то, что предполагаемый получатель имеет или знает, что никто другой не знает или имеет, что позволяет им и только им дешифровать сообщение. Без какой-либо подсказки, что это может быть, невозможно даже узнать, на какой класс алгоритмов смотреть. Если нет никаких требований, ответ, вероятно, однократный, хотя это почти всегда нецелесообразно.

Обновление 2: с вашей дополнительной информацией, RSA с OAEP является очевидным выбором.

1

Существует такая вещь, как bcrypt. Главное, что это ОЧЕНЬ МЕДЛЕННО. Итак, вкратце - хакеру понадобятся годы, чтобы взломать его, потому что вы можете вычислить свой хеш за 1 секунду. Не долго для одного пользователя для одной процедуры аутентификации. Но для хакера 1 секунда много, потому что он должен попробовать миллионы комбинаций. Для сравнения - SHA-1 (например) вычисляет ваш кеш за миллисекунды. То же самое для хакера - ему будет очень удобно взломать ваш пароль. Итак, я рекомендую bcrypt.

РЕДАКТИРОВАТЬ Я хочу сильно признать комментарий @Huskehn. Очень важно, как это реализовано. Безопасность включает в себя множество аспектов, а не только выбор самого мощного алгоритма хеширования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .