Что такое симметричное шифрование?

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

Свойства алгоритмов симметричного шифрования

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

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

Ключи для алгоритмов симметричного шифрования, как правило, довольно малы, по крайней мере, по сравнению с асимметричным шифрованием. Это делает их относительно легкими для передачи даже по медленному сетевому соединению и менее уязвимыми для ошибок в ненадежной сети. Алгоритмы симметричного шифрования также быстрее по сравнению с асимметричными алгоритмами.

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

Потоковые шифры и блочные шифры

AES, вероятно, является самым известным алгоритмом симметричного шифрования. Он используется практически во всем, что шифрует большое количество данных, и является стандартной частью наборов шифрования, используемых в HTTPS. AES — это блочный шифр со 128-битными блоками. Блочный шифр работает путем одновременного шифрования блоков данных. Каждый блок должен быть одинакового размера. Это нормально, когда оставшиеся данные больше, чем размер блока, но это означает, что для завершения блока необходимо использовать некоторую форму заполнения.

Поточный шифр работает, шифруя гораздо меньшие объемы данных за раз, обычно по одному байту за раз. Разновидностью этой концепции является шифр замены, который работает с буквами. Шифры подстановки уязвимы для частотного анализа и поэтому обычно ненадежны и не используются. Однако у потоковых шифров такой проблемы нет.

Симметричные алгоритмы, как правило, уязвимы для атак с известным открытым текстом, атак с выбранным открытым текстом, дифференциального криптоанализа и линейного криптоанализа. Однако современные алгоритмы были тщательно разработаны с учетом этого, поэтому эти проблемы не являются проблемой.

Заключение

Симметричное шифрование — это форма шифрования, в которой используется один и тот же ключ как для шифрования, так и для расшифровки данных. В некоторых случаях сам алгоритм одинаков как для шифрования, так и для расшифровки, хотя это не всегда так. Ключи шифрования, как правило, относительно короткие и их легко передавать. Однако ключ необходимо передавать по защищенному каналу, поскольку он должен передаваться между всеми вовлеченными сторонами. Алгоритмы симметричного шифрования, как правило, намного быстрее, чем алгоритмы асимметричного шифрования.