Алгоритмы шифрования и их типы
ТИПЫ АЛГОРИТМОВ ШИФРОВАНИЯ
Одним из наиболее ценных достижений в современном обществе является информация, поэтому с появлением глобальных компьютерных сетей вопрос защиты информации приобрел важнейшее значение. С этой целью ведутся работы по обеспечению безопасности данных при помощи шифрования информации. Существует два типа алгоритмов шифрования: симметричное и асимметричное.
Симметричное шифрование
При использовании алгоритма симметричного шифрования используется один ключ, с помощью которого выполняется как шифрование, так и дешифрование сообщений с одним и тем же алгоритмом. Этот ключ называют секретным и передают пользователям взаимодействия по обмену данными безопасным образом.
На сегодняшний день имеется большое число алгоритмов симметричного шифрования. Наиболее распространенными среди них являются DES (Data Encryption Standard — стандарт шифрования данных), IDEA (International Data Encryption Algorithm — международный алгоритм шифрования данных) — патентованный алгоритм и Blowfish — непатентованный алгоритм.
Рассматривая алгоритмы симметричного шифрования, пользователь сталкивается с таким понятием, как стойкость шифра, то есть степень сопротивления его криптоаналитическим атакам. А размер используемого ключа определяет стойкость алгоритма. В алгоритме IDEA
используются ключи 128 разрядные, а в алгоритме Blowfish размер ключа составляет от 32 до 448 бит. Общеизвестно, что чем длиннее ключ, тем шифр более стойкий. Так, в стандарте DES размер ключа имеет 56 разрядов, следовательно, этот алгоритм считается одним из наиболее слабых.
Используя алгоритм симметричного шифрования, пользователи сталкиваются с такой проблемой, как необходимость применения секретного ключа. Участникам зашифрованного диалога необходимо быть уверенными, что они имеют соответствующий ключ, который можно выслать по почте, факсом или доставить при помощи курьера. Такие способы доставки неудобны и недостаточно надежны. Поэтому специалисты рекомендуют воспользоваться асимметричным шифрованием и кодировать секретный ключ, высылая его по электронной почте.
Асимметричное шифрование
Асимметричное шифрование или шифрование на основе открытых ключей позволяет одновременно использовать два взаимосвязанных ключа: один – для шифрования, второй – для дешифрования. Один ключ, который называют открытым, доступен любому, кто его запрашивает, а второй, или личный, должен быть известен только владельцу.
Применение алгоритмов асимметричного шифрования вызвано необходимостью передачи секретных ключей посредством незащищенных каналов. Впервые такую систему в 1974 году разработал Ральф Меркл, а первым алгоритмом, который завоевал заслуженную популярность, стал алгоритм Диффи-Хеллмана, который был создан в 1976 году, а в 1977 году разработан похожий алгоритм RSA, названный по именам разработчиков Ривеста, Шамира и Эйдельмана.
Применение алгоритмов асимметричного шифрования позволяет обеспечивать конфиденциальность информации и создавать цифровые подписи, то есть выполнять аутентификацию. Учитывая то, что каждый из приведенных типов алгоритмов шифрования выполняет присущие им функции, они не являются соперниками, поэтому асимметричные алгоритмы наиболее часто применяются при необходимости шифровать секретные ключи, которые передаются по незащищенным каналам, а также при создании электронных цифровых подписей.
Статья прочитана 83 раз(a).
Криптографические ключи — UWP applications
- Статья
- Чтение занимает 3 мин
Оцените свои впечатления
Да Нет
Хотите оставить дополнительный отзыв?
Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку «Отправить», вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.
Отправить
Спасибо!
В этой статье
В этой статье описано, как использовать стандартные функции формирования производных ключей и шифровать содержимое с помощью симметричных и асимметричных ключей.
симметричные ключи;
При шифровании с симметричным ключом (известном также как симметричное шифрование) ключ, используемый для шифрования, должен также применяться для расшифровки. Вы можете использовать класс SymmetricKeyAlgorithmProvider для указания алгоритма симметричного шифрования и для создания или импорта ключа. Для шифрования и расшифровки данных с помощью алгоритма и ключа можно использовать статические методы класса CryptographicEngine.
При шифровании с симметричным ключом обычно используются блочные шифры и режимы блочного шифра. Блочный шифр — это функция симметричного шифрования, работающая с блоками фиксированного размера. Если длина сообщения, которое вы хотите зашифровать, превышает длину блока, следует использовать режим блочного шифра. Режим блочного шифра — это функция симметричного шифрования, основанная на использовании блочного шифра. Она шифрует открытый текст в виде последовательности блоков фиксированного размера. Приложения поддерживают следующие режимы:
- Режим ECB (электронного кодового словаря) шифрует каждый блок сообщения по отдельности. В нем не предусмотрен режим надежного шифрования.
- Режим CBC (сцепление блоков шифра) использует предыдущий блок зашифрованных данных для кодирования текущего блока. Вам нужно указать, какое значение использовать для первого блока. Это значение называется вектором инициализации (IV).
- Режим CCM (счетчика с CBC-MAC) объединяет режим блочных шифров CBC с кодом проверки подлинности сообщения (MAC).
- Режим GCM (счетчика Галуа) объединяет режим шифрования счетчика с режимом проверки подлинности Галуа.
Для некоторых режимов, например CBC, вам нужно использовать вектор инициализации (IV) для первого блока зашифрованных данных. Далее приведены распространенные векторы инициализации. Вектор инициализации задается при вызове метода
- Фиксированный — предполагает использование одного вектора инициализации для всех шифруемых сообщений. Этот метод не рекомендуется использовать, так как он может привести к утечке информации.
- Счетчик — увеличивает вектор инициализации для каждого блока.
- Случайный — создает псевдослучайный вектор инициализации. Для создания вектора инициализации можно использовать метод CryptographicBuffer.GenerateRandom.
- Специально создаваемый — использует уникальное число для каждого шифруемого сообщения. Как правило, специальное значение — это измененный идентификатор сообщения или транзакции. Оно не предназначено для хранения шифра, но не должно повторно использоваться с одним ключом.
Для большинства режимов необходимо, чтобы длина открытого текста была кратной размеру блока. Для этого обычно требуется подгонять открытый текст до требуемой длины.
Если блочные шифры предназначены для шифрования блоков данных фиксированного размера, то потоковые шифры — это функция симметричного шифрования, группирующая биты открытого текста с псевдослучайным потоком битов (потоком ключей) для создания зашифрованных данных. Некоторые режимы блочных шифров, такие как режим вывода обратной связи (OTF) и режим счетчика (CTR), эффективно преобразуют блочные шифры в потоковые. Но обычно реальные потоковые шифры, например RC4, работают на более высоких скоростях по сравнению с режимами блочных шифров.
В следующем примере показано, как использовать класс SymmetricKeyAlgorithmProvider, чтобы создать симметричный ключ и применить его для шифрования и расшифровки данных.
асимметричные ключи;
При асимметричном шифровании, известном также как шифрование с открытым ключом, для шифрования и расшифровки используются открытый и закрытый ключи. Эти ключи различны, но связаны математически. Как правило, закрытый ключ хранится в тайне и используется для расшифровки данных, в то время как открытый ключ распространяется заинтересованным сторонам и применяется для шифрования. Асимметричное шифрование также используется для подписывания данных.
Асимметричные алгоритмы шифрования гораздо медленнее симметричных алгоритмов, поэтому они редко используются непосредственно для шифрования больших объемов данных. Вместо этого они используются для шифрования ключей следующим образом.
- Алисе нужно, чтобы Боб отправлял ей только зашифрованные сообщения.
- Алиса создает пару «открытый/закрытый ключ», сохраняет секрет своего закрытого ключа и публикует открытый ключ.
- У Боба есть сообщение, которое он хочет отправить Алисе.
- Боб создает симметричный ключ.
- Боб использует свой новый симметричный ключ для того, чтобы зашифровать сообщение для Алисы.
- Боб использует открытый ключ Алисы для того, чтобы зашифровать свой симметричный ключ.
- Боб отправляет зашифрованное сообщение и симметричный ключ шифрования Алисе (в конверте передачи сообщения).
- Алиса использует свой закрытый ключ (из пары закрытый-открытый ключ) для того, чтобы расшифровать симметричный ключ Боба.
- Алиса использует симметричный ключ Боба для расшифровки сообщения.
С помощью объекта AsymmetricKeyAlgorithmProvider можно указать асимметричный алгоритм или алгоритм подписи, создать или импортировать временную пару ключей или импортировать открытый ключ пары.
Формирование производных ключей
Часто возникает потребность в формировании дополнительных производных ключей из общего секрета. Для формирования производных ключей можно использовать класс KeyDerivationAlgorithmProvider и один из следующих специализированных методов класса KeyDerivationParameters.
Объект | Описание |
---|---|
BuildForPbkdf2 | Создает объект KeyDerivationParameters, который используется функцией формирования ключа при помощи пароля 2 (PBKDF2). |
BuildForSP800108 | Создает объект KeyDerivationParameters для использования в режиме счетчика функцией формирования ключа при помощи хэш-кода проверки подлинности сообщения (HMAC). |
BuildForSP80056a | Создает объект KeyDerivationParameters, который используется функцией формирования ключа при помощи SP800-56A. |
Виды алгоритмов симметричного шифрования — Информатика, информационные технологии
К основным способам симметричного шифрования относятся:
-перестановки. Биты или символы переставляются в соответствии с задаваемым ключом шифрования правилом. Плюсы: высокая скорость получения шифротекста. Минусы: сохранение частотных характеристик текста после его шифрования (символы открытого текста лишь меняют свои позиции в шифротексте), малое количество возможных ключей шифрования;
-подстановки (замены): одно- и многоалфавитная подстановка. Символы открытого текста заменяются символами того же или другого алфавита в соответствии с определяемым ключом шифрования. Минусы одноалфавитной подстановки: не скрывается частота появления различных символов открытого текста в шифротексте (одинаковые символы открытого текста остаются одинаковыми и в шифротексте), малое число возможных ключей. Плюсы многоалфавитной подстановки: в шифротексте маскируется частота появления различных символов открытого текста, поэтому криптоаналитик не может при вскрытии шифра использовать частотный словарь естественного языка;
-гаммирование(шифротекст получается путем наложения на открытый текст гаммы шифра с помощью какой-либо обратимой операции). Лежит в основе потоковых шифров, в которых открытый текст преобразуется последовательно по одному биту.
Алгоритмы симметричного шифрования различаются способом, которым обрабатывается исходный текст:
— шифрование потоком. Шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования (метод шифрования, основанный на «наложении» гамма-последовательности на открытый текст. Шеннон доказал, что такой шифр может быть абсолютно устойчивым при определенных свойствах гамма-последовательности). Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28147-89 в режиме гаммирования), запущенного в специальном режиме. Плюсы: высокая производительность. Наиболее пригодны для шифрования непрерывных потоков данных. Наиболее известные алгоритмы: RC4 (может использоваться ключ переменной длины), SEAL (ключ длиной до 160 бит).
— шифрование блоками. Большинство современных симметрических криптосистем используют блочные шифры. Открытый текст разбивается на блоки, как правило, фиксированной длины, к каждому блоку применяется функция шифрования, использующая перестановки битов блока и многократное повторение операций подстановки и гаммирования, после чего над зашифрованными блоками может выполняться дополнительная операция перед включением их в шифротекст. Наиболее известные способы – сеть Фейстелла.
Основные характеристики блочных шифров: длина блока, длина ключа шифрования и число раундов. Для того, чтобы шифр обладал абсолютной устойчивостью к взлому, он должен обладать двумя свойствами (по Шеннону):
— ключ шифрования должен вырабатываться совершенно случайным образом ( в частности, один и тот же ключ должен применяться для шифрования только одного открытого текста)
— длина шифруемого открытого текста не должна превышать длину ключа шифрования.
Примеры реализации
Стандарт США до 2001 года – алгоритм DES. В Российской Федерации используемая криптосистема определена в стандарте ГОСТ 28147-89.
Классическим примером алгоритмов являются симметричные криптографические алгоритмы, перечисленные ниже:
- Простая подстановка
- Одиночная перестановка по ключу
- Двойная перестановка
- Перестановка Магический квадрат
Простая перестановка
Простая перестановка без ключа — один из самых простых методов шифрования. Сообщение записывается в таблицу по столбцам. После того, как открытый текст записан колонками, для образования шифровки он считывается по строкам. Для использования этого шифра отправителю и получателю нужно договориться об общем ключе в виде размера таблицы. Объединение букв в группы не входит в ключ шифра и используется лишь для удобства записи несмыслового текста.
Статьи к прочтению:
Мысль #12 — Симметричный Сигнал
Похожие статьи:
Симметричное и асимметричное шифрование для новичков
- – Автор: Игорь (Администратор)
По сети ходит невероятное число смелых заявлений вида асимметричное шифрование круче симметричного, ровно как и обратных. И зачастую новички прислушиваются к этим словам, даже не особо понимая о чем идет речь. Сказано, что AES это круто или же наоборот RSA рулит, и все приняли за чистую монету. Однако, такой подход достаточно часто приводит к проблемам, когда из-за недостаточного понимания сути вопроса реализуются совершенно ненужные части или система оказывается беззащитной.
Поэтому в рамках данной статьи я расскажу базовый минимум, который стоит знать новичку. Не будет никаких сложных формул или математических обоснований, но зато будет пояснена разница симметричного и асимметричного шифрования, а так же будут приведены некоторые существенные моменты. Но, обо всем по порядку.
Симметричное шифрование
В симметричном шифровании используется всего один пароль (или как его еще называют ключ). Рассмотрим как все происходит. Есть некоторый математический алгоритм шифрования, которому на вход подается пароль и текст. На выходе получается зашифрованный текст. Чтобы получить исходный текст, используется этот же пароль, но с алгоритмом дешифрования (иногда он может совпадать).
Другими словами, стоит кому-либо узнать этот пароль, как безопасность тут же нарушается. Поэтому если используется симметричное шифрование, немалое внимание должно придаваться вопросу создания и сохранения в безопасности самого пароля. Он не должен передаваться в открытом виде, неважно сеть это или же листочек, прикрепленный к монитору. Пароль должен быть достаточно сложным, чтобы его нельзя было получить простым перебором. Если пароль используется несколькими людьми, то должен быть продуман безопасный метод его распространения, а так же систему оповещения на случай, если пароль станет известен кому-либо еще.
Несмотря на свои ограничения, симметричное шифрование имеет большое распространение. В основном из-за простоты понимания всего процесса (один пароль) и технической нагрузки (обычно, такие алгоритмы быстрые).
Асимметричное шифрование
В асимметричном шифровании используется два пароля — один открытый (публичный) и один закрытый (секретный). Открытый пароль отсылается всем людям, закрытый же пароль остается на стороне сервера или другого приемника. При этом названия зачастую условные, так как зашифрованное сообщение одним из ключей можно расшифровать только с помощью другого ключа. Другими словами, ключи в этом смысле равноценны.
Такие алгоритмы шифрования позволяют свободно распространять пароль (ключ) по сети, так как без второго ключа невозможно получить исходное сообщение. На этом принципе основан протокол SSL, который позволяет легко установить безопасное соединение с пользователями в силу того, что закрытый ключ (пароль) хранится только на стороне сервера. Если замечали, то периодически в браузере появляется сообщение «небезопасное соединение», когда вы открываете сайт с префиксом https. Это означает, что вполне возможно, что закрытый ключ уже давно вскрыт, еще говорят скомпрометирован, и известен злоумышленникам. Поэтому такое безопасное соединение может и не быть безопасным.
В случае с асимметричным шифрованием, становится несколько проще в плане хранения паролей, так как секретный ключ нет необходимости передавать кому-либо. Достаточно, чтобы его знал только один человек или сервер. Так же вопрос взлома пароля становится проще, так как сервер в любой момент может сменить пару ключей и разослать всем созданный открытый пароль.
Однако, асимметричное шифрование более «тяжелое», другими словами, требует больше ресурсов компьютера. Так же есть ограничения на сам процесс генерации ключей (их еще нужно подобрать). Поэтому на практике асимметричное шифрование обычно используют только для проведения аутентификации и идентификации пользователей (например, вход на сайт), или же для создания сессионного ключа для симметричного шифрования (временный пароль для обмена данными между пользователем и сервером), или же для создания цифровых подписей, которые зашифрованы секретным ключом. Как вы уже наверное поняли, в последнем случае проверить такую подпись может любой желающий с помощью публичного ключа, который находится в открытом доступе.
Важные моменты о симметричном и асимметричном шифровании
Самое главное отличие симметричного и асимметричного шифрования заключается в их подходе. Поэтому когда вы слышите или читаете статью про их сравнение вида «этот алгоритм лучше» без упоминания конкретики (определенных условий и задач), то можете смело начинать заниматься другими делами, так как это весьма бесполезное занятие аналогичное спору «Что лучше? Танк или пароход?». Без конкретики, ни то и ни другое. Тем не менее, есть важные моменты, о которых стоит знать:
1. Симметричный алгоритм хорош для передачи больших объемов шифрованных данных. Асимметричный алгоритм, при прочих равных, будет существенно медленнее. Кроме того, для организации обмена данными по асимметричному алгоритму либо обеим сторонам должны быть известны открытый и закрытый ключ, либо таких пар должно быть две (по паре на каждую сторону).
2. Асимметричное шифрование позволяет стартовать безопасное соединение без усилий со стороны пользователя. Симметричный же алгоритм предполагает, что пользователю необходимо «еще узнать каким-то образом пароль». Тем не менее, стоит понимать, что асимметричные алгоритмы так же не обеспечивают 100% безопасности. К примеру, они подвержены атакам «человек по середине». Суть последней заключается в том, что между вами и сервером устанавливается компьютер, который для вас отсылает свой открытый ключ, а для передачи данных от вас использует открытый ключ сервера.
3. С точки зрения взлома (компрометации) пароля, асимметричный алгоритм более легок, так как серверу достаточно сменить пару ключей и разослать созданный публичный ключ. В случае симметричного шифрования, встает вопрос о том, как передать следующий пароль. Однако и эти ограничения обходятся, к примеру, на обеих сторонах ключи постоянно генерируются по одному и тому же алгоритму, тогда вопрос становится в сохранении этого алгоритма в секрете.
4. Симметричные алгоритмы обычно строятся на основе некоторых блоков с математическими функциями преобразования. Поэтому модифицировать такие алгоритмы легче. Асимметрические же алгоритмы обычно строятся на некоторых математических задачах, например. RSA построен на задаче возведения в степень и взятия по модулю. Поэтому их практически невозможно или очень сложно модифицировать.
5. Асимметричные алгоритмы обычно применяются в паре с симметричными. Происходит это примерно следующим образом. С помощью асимметричного алгоритма серверу отсылается придуманный пользователем сессионный ключ для симметричного шифрования, после чего обмен данными происходит уже по симметричному алгоритму. Порядок частично может меняться или же ключ может немного по-другому формироваться, но смысл примерно одинаковый.
6. Создание безопасных ключей (паролей) в асимметричных алгоритмах дело весьма непростое, в отличии от симметричных алгоритмов, где ключ достаточно формировать по правилам генерации безопасных паролей (цифры, буквы, регистр и прочее). Однако, тот факт, что секретный пароль знает только сервер, облегчает задачу сохранения ключа в безопасности.
7. Наличие шифрования не является гарантом безопасности. Его всегда необходимо рассматривать в купе с другими подходами.
Послесловие
Как видите, области применения у симметричного и асимметричного шифрования разные, поэтому при использовании того или иного алгоритма шифрования, его всегда необходимо соотносить с реальными задачами. Так же важно понимать, что вполне возможно, что вам могут пригодится их гибриды.
Надеюсь, данный материал позволит вам не идти на поводу громких лозунгов, а более объективно подходить к вопросам. К примеру, если в программе шифрования файлов для персонального использования указан асимметричный алгоритм, то у вас, как минимум, должен возникнуть вполне рациональный вопрос «это мне вместо одного пароля нужно с собой таскать два, в добавок еще и сгенерированных фиг знает как, не проще ли было бы использовать мощный симметрический алгоритм с возможностью пользователям самим указывать пароли, программа же для персонального использования?».
☕ Хотите выразить благодарность автору? Поделитесь с друзьями!
- Как открыть MDF или MDS файл?
- Всегда ли наличие костылей в коде это плохо?
Добавить комментарий / отзыв
Симметричные алгоритмы | Типы симметричных алгоритмов
Введение в симметричные алгоритмы
Симметричные алгоритмы, также известные как алгоритмы секретного ключа, широко используются при шифровании объемных данных или потока данных. Это тип криптографического алгоритма, который шифрует и дешифрует данные, используя один и тот же ключ (что делает этот алгоритм симметричным). Он называется секретным ключом, поскольку используемый ключ хранится в секрете системами, которые участвуют в процессе шифрования и дешифрования. Шифрование, выполняемое этим алгоритмом, нелегко сломать, если у человека, который пытается расшифровать, нет секретного ключа, ему придется использовать передовые методы для его взлома. Эти алгоритмы, как правило, очень быстрые по своей природе, что является еще одной причиной, по которой они используются, когда требуется шифрование больших объемов данных. Рис. 1a изображает базовый симметричный ключ шифрования:
Figure1.a Шифрование с симметричным ключом
Типы симметричных алгоритмов
Широко симметричные алгоритмы подразделяются на два
Блочные алгоритмы
Блочные алгоритмы шифруют блок данных блоком (много байтов). Блок относится к указанному набору битов, и эти биты изменяются / шифруются с использованием секретного ключа. Недостатком блочных алгоритмов является то, что, допустим, мы собираемся зашифровать данные сетевого потока, эти данные хранятся системой шифрования в ее компонентах памяти. Это сохранение данных выполняется, когда система фактически ожидает полных блоков данных. Это время ожидания может привести к пробелу в безопасности, который может поставить под угрозу безопасность и целостность данных. Чтобы избежать этой угрозы, мы можем уменьшить блок и объединить данные с ранее зашифрованным блоком данных, пока не будут получены дополнительные блоки, проще говоря, этот метод называется обратной связью. Этот алгоритм будет шифровать, только если получен полный блок.
Алгоритмы потока
В алгоритмах In-Stream данные шифруются побайтово, а иногда даже побитно. В случае потокового алгоритма данные не сохраняются в памяти системой, поэтому можно сказать, что это намного безопаснее по сравнению с блочным алгоритмом, поскольку данные не сохраняются в системе без шифрования.
Кроме того, они представляют собой несколько типов алгоритмов шифрования из перечисленных ниже.
- DES & Triple DES
- RC2
- Blowfish
DES & Triple DES
DES обозначает стандарт шифрования данных, который принимает 64-битный простой текст, шифрует его в 64-битный зашифрованный текст и расшифровывает обратно с помощью 56-битного ключа. В DES процесс шифрования начинается с начальной стадии перестановки, где он будет принимать входные данные как 64-битные данные и переставлять их предопределенным образом. За исходной перестановкой следует, что 16 раундов шифрования Фейстеля (шифр Фейстеля принимает входные данные и делит его на две части и выполняет шифрование только на одну часть), где в каждом раунде используется различный 48-битный ключ шифра. Для целей шифрования и дешифрования он использует шифр и инвертирует алгоритм шифрования. Наконец, данные проходят финальную стадию перестановки, чтобы получить зашифрованный текст. Подобно DES Triple DES — это всего лишь шифр DES, повторенный 3 раза. Fig2.a показывает общую архитектуру алгоритма DES.
Общая архитектура алгоритма DES
RC2
Это алгоритм блочного шифрования, в котором сначала данные делятся на блоки размером 8 байт, и эти блоки обрабатываются отдельно. Этот алгоритм широко использовался в 90-х годах. Шифр Rc2 использует секретный пользовательский ключ, размер которого может варьироваться от одного байта до 128 байтов. Он берет этот секретный ключ пользователя, использует алгоритм расширения ключа и шифрует данные. Этот алгоритм разработан таким образом, чтобы его можно было легко реализовать в 16-разрядных микропроцессорах. Здесь нет раундов Фейстеля, вместо этого данные подвергаются 18 раундам смешивания и затирания. На Рис. 2b показана общая архитектура алгоритма RC2.
Общая архитектура алгоритма RC2
Blowfish
Это асимметричный алгоритм, который заменяет DES. Здесь используемый размер блока составляет 64 бита, а размеры ключей варьируются от 32 до 448 бит. Шифрование с использованием Blowfish в основном состоит из двух этапов
- Круглая функция
- Операция вывода
Функция округления выполняет следующие шаги
- Отбеливание клавиш, при котором берется левая часть входных данных и выполняется исключительная операция ИЛИ.
- На втором шаге используются S-блоки, эти S-блоки отображают 8-битные данные в 32-битные, и вывод берется для объединения с комбинацией операций сложения и XOR.
- Вышеупомянутые два шага, объединенные вместе, называют F-функцией. С выводом функции F и правой стороны входных данных выполняется операция XOR.
- Последний шаг включает в себя обмен выходными данными.
Функция вывода распознает окончательный своп и выполняет отбеливание вывода. Результатом этой функции является зашифрованный текст Blowfish. Расшифровка с использованием blowfish включает в себя использование той же структуры, что и шифрование, так как она использует шифр Фейстеля, но круглые ключи должны использоваться в обратном порядке. Основным преимуществом этого алгоритма является то, что он доступен в открытом доступе, так что он легко доступен. Недостатки заключаются в том, что генерация ключей отнимает много времени, и если размер блока невелик, он уязвим для атак.
Приложения симметричных алгоритмов
Некоторые из мест, где используется алгоритм симметричного шифрования:
- Карточные транзакции используются для предотвращения кражи личных данных и мошеннических транзакций.
- Для подтверждения личности мессенджера.
- Хеширование и генерация случайных чисел
- Шифрование базы данных
Заключение — симметричные алгоритмы
Симметричные алгоритмы намного быстрее и эффективнее по сравнению с асимметричными алгоритмами. Это еще одна причина, по которой они используются в массовом шифровании. Но его недостатком является то, что управление ключами является очень исчерпывающим, поэтому крупномасштабное обслуживание — это утомительная задача, для которой нам необходима высокая степень безопасности, для достижения которой мы должны поддерживать жизненный цикл ключа, созданного с использованием отдельной системы., Следовательно, мы всегда должны использовать правильное шифрование, чтобы избежать любых атак на наши данные.
Рекомендуемые статьи
Это руководство по симметричным алгоритмам. Здесь мы обсуждаем введение и типы симметричных алгоритмов вместе с DES и Triple DES. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше —
- Что такое WebSocket?
- Безопасность веб-приложений
- Карьера в веб-разработке
- Карьера в веб-дизайне
- Режим работы блочного шифра
- Примеры алгоритма C ++
Разница между симметричным и асимметричным шифрованием — Технология
Содержание:
При общении на незащищенном носителе, таком как Интернет, вы должны быть осторожны в отношении конфиденциальности информации, которой вы делитесь с другими. Эти два метода используются для сохранения конфиденциальности вашего, симметричного и асимметричного шифрования. Принципиальное отличие, которое отличает симметричное и асимметричное шифрование, состоит в том, что симметричное шифрование позволяет шифрование и дешифрование одним и тем же ключом. С другой стороны, асимметричное шифрование использует открытый ключ для шифрования, а закрытый ключ используется для расшифровки. Чтобы признать еще некоторые различия между симметричным и асимметричным шифрованием, взгляните на сравнительную таблицу, показанную ниже.- Сравнительная таблица
- Определение
- Ключевые отличия
- Вывод
Сравнительная таблица
Основа для сравнения | Симметричное шифрование | Асимметричное шифрование |
---|---|---|
основной | Симметричное шифрование использует один ключ как для шифрования, так и для дешифрования. | Асимметричное шифрование использует другой ключ для шифрования и дешифрования. |
Спектакль | Симметричное шифрование быстро выполняется. | Асимметричное шифрование выполняется медленно из-за высокой вычислительной нагрузки. |
Алгоритмы | DES, 3DES, AES и RC4. | Диффи-Хеллман, ЮАР |
Цель | Симметричное шифрование используется для массовой передачи данных. | Асимметричное шифрование часто используется для безопасного обмена секретными ключами. |
Определение симметричного шифрования
Симметричное шифрование — это метод, который позволяет использовать только один ключ для выполнения как шифрования, так и дешифрования общего доступа через Интернет. Он также известен как обычный метод, используемый для шифрования. При симметричном шифровании обычный код шифруется и преобразуется в шифр с использованием ключа и алгоритма шифрования. При этом шифр конвертируется обратно в обычный, используя тот же ключ, который использовался для шифрования, и алгоритм дешифрования.
Алгоритм симметричного шифрования выполняется Быстрее и является менее сложный следовательно, они используются для массовая передача данных, При симметричном шифровании хост, участвующий в обмене данными, уже имеет секретный ключ, полученный с помощью внешних средств. Пользователь информации или будет использовать ключ для шифрования, а получатель будет использовать ключ для расшифровки. Обычно используемые алгоритмы симметричного шифрования DES, 3 DES, AES, RC4.Определение асимметричного шифрования
Асимметричное шифрование — это метод шифрования, который использует пару ключей (закрытый ключ и открытый ключ) для шифрования и дешифрования. Асимметричное шифрование использует открытый ключ для шифрования и закрытый ключ для расшифровки. Открытый ключ находится в свободном доступе для всех, кто заинтересован в использовании. Закрытый ключ хранится в секрете с получателем. Все, что зашифровано открытым ключом и алгоритмом, дешифруется с использованием того же самого алгоритма и соответствующего личного ключа соответствующего открытого ключа.
Алгоритм асимметричного шифрования выполняется медленно. Так как алгоритмы асимметричного шифрования носят сложный характер и имеют высокую вычислительную нагрузку. Следовательно, асимметричное шифрование используется для надежный обмен ключами вместо массовой передачи данных. Асимметричное шифрование обычно используется для установления безопасного канала через незащищенный носитель, такой как Интернет. Наиболее распространенным алгоритмом асимметричного шифрования являются Алгоритм Диффи-Хеллмана и RSA.- Симметричное шифрование всегда использует один ключ для шифрования и дешифрования. Однако в асимметричном шифровании он использует открытый ключ для шифрования и закрытый ключ для дешифрования.
- Выполнение алгоритмов асимметричного шифрования медленнее по сравнению с алгоритмом симметричного шифрования. Это связано с тем, что алгоритмы асимметричного шифрования являются более сложными и имеют высокую вычислительную нагрузку.
- Наиболее часто используемые алгоритмы симметричного шифрования — DES, 3DES, AES и RC4. С другой стороны, области Диффи-Хеллмана и RSA являются наиболее распространенным алгоритмом, используемым для асимметричного шифрования.
- Асимметричное шифрование обычно используется для обмена секретными ключами, тогда как симметричное шифрование используется для обмена большей частью данных.
Вывод:
Будучи сложной и медленной техникой шифрования, асимметричное шифрование обычно используется для обмена ключами, а симметричное шифрование, являющееся более быстрой техникой, используется для массовой передачи данных.
Шифрование с помощью симметричного и асимметричного ключа
Информационная безопасность – очень важный компонент для любой организации или отдельного лица, располагающего конфиденциальной личной информацией. В течение долгого времени люди использовали разные методы защиты своих активов от злоумышленников или злоумышленников. Криптография – это один из методов, который пытается сделать информацию непонятной для непреднамеренных пользователей и позволить только законному получателю прочитать ее. Криптографические методы обеспечивают безопасную связь, основанную на принципе аутентификации, конфиденциальности, целостности и неотказуемости. Симметричное и асимметричное шифрование – два важных метода криптографии, которые используются для обеспечения безопасности данных.
Что мы будем освещать?
В этой статье мы узнаем о разнице между двумя широкими категориями криптографических методов: шифрами с симметричным и асимметричным ключом (криптография).
Симметричное шифрование ключа (шифр)
Шифрование с симметричным ключом или симметричный шифр, также называемое шифрованием с секретным ключом, использует один ключ для шифрования и дешифрования сообщения. Его основное использование – обеспечение конфиденциальности и конфиденциальности.
В симметричном шифровании есть три операции, а именно: генерация ключа, шифрование и дешифрование. Здесь отправитель шифрует обычное текстовое сообщение секретным ключом для генерации зашифрованного текста. Затем отправитель отправляет это зашифрованное сообщение получателю. Получатель, получив зашифрованное сообщение, расшифровывает его тем же ключом дешифрования, что и отправитель.
Алгоритмы симметричного шифрования бывают двух типов. Первый – это блочный шифр, а второй – потоковый.
В блочном шифре сообщение делится на блоки фиксированного размера, каждый из которых шифруется отдельно. Блочные шифры являются предпочтительным выбором для шифрования дейтаграмм MAC и сетевого уровня. AES, DES и 3DES являются примерами блочных шифров.
В потоковом шифре данные обрабатываются как непрерывный поток. Простой текст обрабатывается по одному байту за раз. У них меньшая скорость распространения ошибок. RC4 – это пример потокового шифра. Кстати, RC4 используется в протоколе Transport Layer Security (TLS).
Преимущества симметричного шифрования
Симметричное шифрование работает более эффективно и быстрее. Также требуется меньше времени на выполнение. Поэтому они предпочтительны для длинных сообщений.
Создание надежного ключа и алгоритмы обработки для симметричного шифрования относительно менее затратны.
Он также обеспечивает определенную степень аутентификации, поскольку для шифрования данных используется один ключ, и только этот ключ может использоваться для дешифрования данных. Следовательно, пока ключ хранится в секрете отправителем и получателем, конфиденциальность между ними обеспечивается.
Недостатки симметричного шифрования
Ключ, используемый для шифрования и дешифрования, является важным элементом этого алгоритма. Если ключ скомпрометирован, любой, кто владеет им, может легко расшифровать сообщение. Невозможность отказа от авторства, означающая, что отправитель или получатель не может отказать в выполнении действия, не обеспечивается симметричным шифрованием.
Еще одна серьезная проблема с симметричным шифрованием связана с передачей ключа по незащищенной среде. Это называется проблемой распределения ключей.
Также требуется большое количество уникальных ключей, например, нам понадобится n (n-1)/2 ключей для n пользователей.
Асимметричное шифрование ключа (шифр)
Шифрование с асимметричным ключом или асимметричный шифр, также называемое шифрованием с открытым ключом, использует один ключ для шифрования, а другой – для дешифрования сообщения. Его основное использование – реализация аутентификации, неотказуемости и обмена ключами.
Сообщения могут быть зашифрованы любым лицом, использующим открытый ключ получателя, но могут быть расшифрованы только с использованием закрытого ключа получателя.
Преимущества асимметричного шифрования
В случае асимметричного шифрования открытый ключ может быть легко распределен по сравнению с секретным ключом симметричного шифрования. Цифровая подпись для реализации безопасности возможна только с асимметричным шифрованием. Он также лучше всего подходит как для внутренней сети, так и для Интернета. Такие области приложений, как инициирование сеанса, обычно используют асимметричное шифрование.
Требуется небольшое количество ключей и пара ключей для одного объекта, который будет использоваться с любым другим объектом.
Шифрование с асимметричным ключом реализовано в алгоритме RSA и алгоритме обмена ключами Диффи-Хеллмана.
Недостатки асимметричного шифрования
Асимметричное шифрование сравнительно медленнее, чем симметричный алгоритм, а также требует больше ресурсов. Это неэффективно для отправки длинных сообщений. Это также требует проверки между сущностью и ее открытым ключом.
Они страдают от проблемы проверки ключа. Предположим, Алиса отправляет сообщение Бобу, используя его открытый ключ. Вопрос в том, как Алиса удостоверится, что это открытый ключ Боба? Предположим, Чарли каким-то образом удается получить открытый ключ Боба, повторно зашифровывает сообщение Алисы и отправляет его Бобу, как если бы оно пришло непосредственно от Алисы. Боб расшифрует сообщение, используя свой закрытый ключ, думая, что оно пришло непосредственно от Алисы. Другая ситуация состоит в том, что Чарли может выдать себя за Боба и опубликовать новый открытый ключ от имени Боба.
Заключение
Достижения в области криптографии произвели революцию в различных секторах, таких как финансы, электронная коммерция, военные действия и т. д. Симметричное и асимметричное шифрование необходимо, выбор одного из них зависит от области применения. Это причина того, что оба существуют параллельно.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
типов алгоритмов симметричного шифрования | Малый бизнес
Алгоритмы шифрования компьютерных данных бывают двух основных разновидностей: симметричные и асимметричные. Каждый тип шифрования имеет присущие ему сильные и слабые стороны. Симметричные алгоритмы преобразуют простые текстовые данные в нечитаемый зашифрованный текст с помощью одного ключа или пароля; они расшифровывают зашифрованный текст, используя один и тот же ключ. Эти алгоритмы относительно просты и быстры, но если третьи лица перехватят ключ, они смогут расшифровать сообщения. Потребность в надежной электронной коммерции и безопасности компьютерных файлов побудила исследователей разработать несколько типов алгоритмов шифрования.
DES и тройной DES
Стандарт тройного шифрования данных, или алгоритм тройного DES, является развитием оригинального алгоритма DES, введенного в качестве стандарта в 1976 году (ссылка 2, стр. 3). DES использует 56 бит 64-битного ключа для шифрования сообщений в блоках данных фиксированного размера. Хотя в 1970-х годах он считался безопасным, прогресс в скорости вычислений привел к изощренным атакам, взламывающим шифрование DES в конце 1990-х (ссылка 2, стр. 6).Поскольку исследователи обнаружили уязвимость DES, разработчики программного обеспечения вместо этого используют более новый стандарт, Triple DES. Новый стандарт повышает надежность алгоритма за счет использования двух или трех 64-битных ключей и трехкратного шифрования каждого сообщения. Результаты каждого прохода используются в качестве исходных данных для следующего.
RC2
Рон Ривест разработал алгоритм RC2 в конце 1980-х как замену DES. RC2 шифрует данные 64-битными блоками и имеет переменный размер ключа от 8 до 128 бит с шагом 8 бит.Lotus Development обратилась к Rivest за помощью в создании RC2 для программного обеспечения Lotus Notes компании. Поскольку большая часть силы алгоритма шифрования заключается в длине его ключей, исследователи теперь считают, что RC2 слишком легко скомпрометировать (ссылка 3).
Blowfish и Twofish
Исследователь безопасности Брюс Шнайер разработал симметричный алгоритм Blowfish в начале 1990-х годов (ссылка 3). Как и в RC2, Blowfish разбивает сообщения на 64-битные блоки одинакового размера и шифрует блоки.Размеры ключей варьируются от 32 до 448 бит. Шнайер выпустил Blowfish как общедоступный алгоритм, доступный для всех, кто хочет зашифровать данные. Стремясь улучшить Blowfish, он позже разработал Twofish, который использует 128-битные блоки и ключи длиной до 256 бит. Twofish — один из самых быстрых алгоритмов с фиксированными блоками, доступных в настоящее время, и, хотя он имеет теоретические уязвимости, никто еще не взломал его.
Serpent
Исследователи из Кембриджа Росс Андерсон, Эли Бихам и Ларс Кнудсен разработали алгоритм Serpent в 2000 году (ссылка 4).Исследователи полагали, что у других алгоритмов есть теоретические недостатки, которые делают их шифрование уязвимым для коротких атак. Они стремились разработать алгоритм шифрования, максимально свободный от этих недостатков. Змей был результатом их усилий; он использует 128-битный блок и 256-битные ключи (ссылка 5). Как и в случае с Blowfish и Twofish, алгоритм Serpent находится в открытом доступе. Исследователи дали Serpent очень высокие баллы за «фактор безопасности» или надежность против атак.
Симметричное шифрование: определение и пример — видео и расшифровка урока
Что такое симметричное шифрование?
Симметричное шифрование — метод шифрования, использующий один ключ для шифрования (кодирования) и дешифрования (декодирования) данных.Это самый старый и самый известный метод шифрования. Секретный ключ может быть словом, числом или строкой букв, и он применяется к сообщению. Сообщение изменяется в соответствии с правилами в ключе. Отправитель и получатель знают ключ и, таким образом, могут кодировать и декодировать любое сообщение, которое будет использовать этот конкретный ключ.
Система симметричного шифрования состоит из пяти основных компонентов: открытый текст, алгоритм шифрования, секретный ключ, зашифрованный текст и алгоритм дешифрования. Давайте посмотрим на них по одному.
1. Открытый текст
Термин открытый текст относится к исходному сообщению, которое создано и отправлено в методе шифрования. Поскольку вы потрудились зашифровать его, открытый текст, скорее всего, содержит конфиденциальные данные, которые не должны быть видны посторонним.
На изображении примера симметричного шифрования показан простой пример того, как работает симметричное шифрование.
2.
Алгоритм шифрованияАлгоритм шифрования берет открытый текст и преобразует его в нечитаемый формат. Простым примером алгоритма шифрования может быть замена всех N на 3 или всех Z на 1. Процедура может выполнять несколько проходов и изменений, называемых перестановками, в открытом тексте. Как только он будет зашифрован, вам понадобится ключ, чтобы разблокировать его.
3. Ключ
Думайте о ключе как о кольце декодера: секрет зашифрованного текста не может быть прочитан без ключа.Ключ содержит информацию обо всех переключениях и заменах исходного открытого текста.
При симметричном шифровании ключ фактически связан с алгоритмом; в этом смысле кольцо декодера не является универсальным. Изменения и подстановки зависят от ключа, и наоборот, поскольку отправитель и получатель имеют общий ключ.
4. Зашифрованный текст
Зашифрованный текст — это текст, который теперь зашифрован и готов к отправке. Это может выглядеть как случайный поток данных и нечитаемо.
5. Алгоритм дешифрования
В алгоритме дешифрования секретный ключ (кольцо декодера) применяется к зашифрованному тексту. Он преобразует его обратно в открытый текст, фактически выполняя шифрование в обратном порядке.
Асимметричное шифрование против симметричного шифрования
Шифрование — это процесс преобразования открытого текста в зашифрованный, и для защиты вашей организации от злоумышленников шифрование всех ваших данных является обязательным. Но давайте вернемся на мгновение; Ниже приведен список ключевых терминов (и их определений), которые мы будем использовать в этом блоге:
- Открытый текст: информация, которую вы хотите защитить от несанкционированного доступа
- Зашифрованный текст: зашифрованный открытый текст
- Шифрование: процесс использования алгоритма шифрования с ключом шифрования для преобразования открытого текста в зашифрованный
- Ключ: строка битов, используемая с алгоритмом шифрования для обеспечения шифрования и дешифрования
- Расшифровка: процесс преобразования зашифрованного текста в открытый текст
- Симметричное шифрование: когда один и тот же ключ используется для операций шифрования и дешифрования
- Асимметричное шифрование: когда для шифрования и дешифрования используются разные ключи
- Криптографическая контрольная сумма: уникальный идентификатор части данных
- Цифровая подпись: зашифрованная криптографическая контрольная сумма части данных
Теперь, когда мы рассмотрели основные определения, две основные формы шифрования данных — это симметричное шифрование и асимметричное шифрование, но в чем разница и какая из них лучше всего подходит для вашей организации? Знание различий, сходств и деталей каждого из них поможет вам разработать передовой план обеспечения безопасности и обеспечить безопасность ваших сотрудников.
Симметричное шифрование
Симметричное шифрование устарело и фактически является формой шифрования, используемой как организациями, так и отдельными лицами. Симметричное шифрование использует один и тот же ключ как для шифрования, так и для расшифровки данных, что означает, что обе стороны имеют идентичные копии ключа. Вот как зашифрованные данные отправляются с симметричным шифрованием:
- Сначала создается симметричный ключ, который передается получателю безопасным способом.
- Кто-то пишет незашифрованное текстовое сообщение.
- Этот незашифрованный открытый текст можно преобразовать в зашифрованный зашифрованный текст с помощью алгоритма шифрования или шифра и симметричного ключа.
- Зашифрованный зашифрованный текст отправлен получателю.
- Получатель зашифрованного текста может использовать общий ключ для расшифровки зашифрованного текста в открытый текст. Используемый здесь общий ключ такой же, как тот, который использовался для шифрования сообщения на первом этапе.
- Сообщение теперь доступно для чтения получателю.
При условии использования современных алгоритмов слабым местом симметричного шифрования является симметричное распределение ключей.Другой способ представления симметричного секрета — это общий секрет, означающий, что каждая сторона транзакции имеет один и тот же ключ. В случае входа в систему этот ключ будет паролем, который является общим секретом между поставщиком услуг и владельцем учетной записи. Поверхность атаки растет с каждым обладателем симметричного ключа, а пароль можно украсть либо у владельца учетной записи, либо у поставщика услуг.
Асимметричное шифрование
Асимметричное шифрование помогает решить проблему распределения ключей при симметричном шифровании.Асимметричное шифрование начинается с создания двух связанных, но разных ключей. Один может использоваться для шифрования открытого текста в зашифрованный текст, а другой может использоваться для расшифровки зашифрованного текста в открытый текст. Таким образом, вы можете поделиться одним из этих ключей с третьим лицом, чтобы отправлять вам сообщения или интерпретировать сообщения от вас. Ключ, которым вы делитесь с этой третьей стороной, называется открытым ключом, а тот, который вы держите в секрете, — закрытым ключом. Например, при асимметричном шифровании, когда электронное письмо зашифровано с помощью открытого ключа, его может расшифровать только получатель с соответствующим закрытым ключом.В качестве альтернативы, когда кто-то подписывает документ своим закрытым ключом, только соответствующий открытый ключ может использоваться для проверки/подлинности подписи.
Вот как асимметричное шифрование помогает подтвердить свою личность:
- Генерируется пара асимметричных ключей, и ключ дешифрования распространяется как открытый ключ.
- Владелец закрытого ключа пытается получить доступ к службе.
- Служба ответит вызовом, который представляет собой фрагмент данных, который нужно подписать с помощью этого закрытого ключа.
- Затем владелец закрытого ключа подписывает эти данные и возвращает подписанные данные службе.
- Служба использует открытый ключ для проверки подписи этих данных.
Если кто-то украдет открытый ключ, он будет бесполезен для него. Без открытого ключа злоумышленник сможет проверить только подпись закрытого ключа, и он не будет использоваться для аутентификации. Невозможно реконструировать закрытый ключ из открытого ключа.
Сходства и различия
Хотя асимметричное и симметричное шифрование выполняют схожие функции, между ними есть некоторые очевидные различия. Во-первых, давайте обсудим сходство…
- Оба используются для шифрования конфиденциальной информации, чтобы защитить ее от злоумышленников
- Обе системы шифруют открытый текст и расшифровывают зашифрованный текст
- Оба могут противостоять некоторым распространенным атакам на конфиденциальные данные
- Если все сделано правильно, оба устойчивы к атакам только с шифротекстом
А теперь самое главное отличия:
- Симметричное шифрование обычно более эффективно, чем асимметричное
- В симметричном шифровании для шифрования и дешифрования используется только один ключ, в отличие от асимметричного шифрования, при котором для шифрования и дешифрования используются два разных ключа
- Длина ключей сильно различается — для симметричного шифрования длина используемых ключей обычно составляет 128 или 256 бит, но для асимметричного шифрования длина ключей намного больше, обычно 2048 бит или выше (важно, только если мы заботиться о математике системы)
- Риск нарушения безопасности намного выше при симметричном шифровании из-за общего секретного ключа
При проверке подлинности без пароля вместо проверки подлинности с симметричным шифрованием, таким как пароль, личность человека проверяется с использованием закрытого ключа, который надежно хранится на личном устройстве пользователя в специализированном аппаратном устройстве, таком как TPM. Из-за этого закрытый ключ является действительно секретным, так как существует только одна копия, которую нельзя клонировать или переместить. Закрытый ключ не передается ни одному объекту, поскольку для аутентификации личности используется только открытый ключ.
Это позволяет использовать один и тот же ключ для нескольких служб без рисков, связанных с традиционными паролями. При использовании двух разных ключей секрет никогда не будет храниться в базе данных, где он может быть взломан или украден, что может поставить под угрозу вашу организацию.Даже тот, кто входит в приложение, не «знает» асимметричный ключ, по крайней мере, не так, как известен пароль, а закрытый ключ физически нельзя украсть — это то, что принципиально меняет систему. Таким образом, ваши приложения, системы и сети остаются в безопасности и защищены от угроз и злоумышленников.
Узнайте больше о том, как Beyond Identity обеспечивает дополнительную безопасность вашей организации за счет устранения паролей.
Криптографические алгоритмы — службы шифрования AWS
Алгоритм шифрования — это формула или процедура, которая преобразует сообщение открытого текста в зашифрованный зашифрованный текст.Современные алгоритмы используют передовую математику и один или несколько ключей шифрования, чтобы относительно легко зашифровать сообщение, но практически невозможно расшифровать его, не зная ключей. Алгоритмы обычно требуют источник случайности. Они также могут включать несколько уровней шифрования, повторяющихся перестановка и вставка последовательных одноразовых значений для предотвращения атак.
Криптографические сервисы AWS основаны на безопасных алгоритмах шифрования с открытым исходным кодом, которые проверены органами государственных стандартов и академическими исследованиями.Некоторые инструменты и сервисы AWS принудительно использовать определенный алгоритм, в то время как другие предлагают несколько алгоритмов и ключевых размеры, но рекомендуем выбор по умолчанию.
В этом разделе описаны некоторые алгоритмы, поддерживаемые инструментами и сервисами AWS. Они делятся на две категории, симметричные и асимметричные, в зависимости от того, как работают их ключи.
Симметричные алгоритмы
Криптографические инструменты и сервисы AWSподдерживают два широко используемых симметричных алгоритмы.
AES — расширенный стандарт шифрования (AES) с 128-, 192- или 256-битным ключи.AES часто сочетается с Galois/Counter. Mode (GCM) и известный как AES-GCM.
Тройной DES – Тройной DES (3DES) использует три 56-битных ключа. Схема работает с блоком данных, разбивая его в два и итеративно применяя произвольные функции округления, полученные из начальная функция. Тройной DES использует 48 раундов для шифрования блока данных.
Например, Сервис управления ключами AWS использует алгоритм расширенного стандарта шифрования (AES) в режиме Галуа/счетчика. (GCM) с 256-битными секретными ключами.
Схема шифрования называется симметричной , если она использует тот же ключ как зашифровать, так и расшифровать сообщение. Технически ключ шифрования e и ключ дешифрования d не обязательно должны быть точно так же. Все, что требуется, это то, что вычисление тривиально для определения d , когда вы знаете e и e , когда вы знаете d . Однако в большинстве практические схемы симметричного шифрования, e и д одинаковые.
Симметричное шифрование также называется общим ключом , общий секрет и секретный ключ шифрование. Это не называется шифрованием закрытый ключ . соглашение резервирует термин закрытый ключ для асимметричной криптографии, который сосредоточен вокруг идеи закрытого ключа и соответствующего (но другого) открытый ключ.
Шифрование с симметричным ключом требует, чтобы все предполагаемые получатели сообщений имели доступ к общий ключ. Поэтому между ними должен быть установлен безопасный канал связи. участников, чтобы ключ мог быть передан каждому вместе с зашифрованным текстом. Этот представляет практические проблемы и ограничивает использование прямого обмена симметричными ключами.
На следующих рисунках показано, как шифрование и дешифрование работают с симметричным ключи и алгоритмы. На первой иллюстрации используются симметричный ключ и алгоритм для преобразования открытого текста сообщения в зашифрованный текст.
На следующем рисунке показан тот же секретный ключ и симметричный алгоритм, используется для преобразования зашифрованного текста обратно в открытый текст.
Шифры с симметричным ключом могут быть либо блочными, либо потоковыми. Шифр блоков делит передаваемый открытый текст на блоки фиксированной длины. строки, называемые блоками, и шифрует по одному блоку за раз. Блочные шифры обычно считаются более мощными и практичными примитивами, чем поточные шифры, но они также медленнее. Шифры Stream шифруют каждую единицу открытый текст (например, байт), по одной единице за раз, с соответствующей единицей из случайного ключевой поток.В результате получается единая единица зашифрованного текста.
И AES, и 3DES являются блочными шифрами.
Асимметричные алгоритмы
Инструменты AWSобычно поддерживают асимметричные алгоритмы RSA и Elliptic Curve Cryptography (ECC) . Эти алгоритмы полезны для аутентификации и установления безопасной связи. каналы, когда неудобно делиться симметричным ключом заранее. Например, Amazon CloudFront поддерживает длинный список асимметричных шифров, используемых протоколами SSL/TLS для включения зашифрованные соединения через Интернет.
Схема шифрования называется асимметричной , если она использует один ключ — открытый ключ — для шифрования и другой, но математически связанный, ключ — закрытый ключ — для расшифровки. Это должно быть вычислительно невозможно определить закрытый ключ, если известно только одно: открытый ключ. Таким образом, открытый ключ может распространяться публично, в то время как закрытый ключ хранится в секрете и в безопасности. Вместе ключи называются парой ключей .
Другое более распространенное название асимметричного шифрования — с открытым ключом . криптография.Криптография с открытым ключом обычно основана на математических задачах, которые относительно просты в исполнении, но не могут быть легко обращены вспять. К ним относятся факторинг большое целое обратно в составляющие его простые числа и решая эллиптическую кривую функция дискретного логарифма. Алгоритм RSA основан на практической сложности разложение на множители произведения двух больших простых чисел. Криптография на основе эллиптических кривых о трудности нахождения дискретного логарифма случайной точки на эллиптическом кривая, заданная общеизвестной точкой.
Понимание и расшифровка симметричного шифрования | by KOMAL
Чтобы зашифровать открытый текст с помощью алгоритма симметричного шифрования, выполните следующие простые действия:
2. Выберите режим работы
Для некоторых режимов работы требуется IV nonce (или nonce) быть сгенерирован как дополнительный уровень безопасности в паровом и блочном шифре. Типы режимов:
3. Сгенерировать секретный ключ.
Следующие сайты можно использовать для создания секретного ключа(ов).
allkeysgenerator.com — Этот сайт случайным образом генерирует секретный ключ(и).
asecuritysite.com — Этот сайт требует парольную фразу для генерации ключа.
В приведенном ниже примере показан небезопасный процесс симметричного шифрования, а затем показано, как его расшифровать.
После создания секретного ключа его можно использовать для шифрования сообщения, как показано ниже. Я использовал секретный ключ для шифрования строк, а затем кодировал их с помощью base64.
Для расшифровки зашифрованного алгоритма необходимо знать следующее: (1.)Зашифрованное значение (2.) Имя алгоритма (3.) Режим шифрования (4.) Ключ шифрования.
Затем вы можете использовать эту информацию для расшифровки зашифрованного значения с помощью онлайн-инструмента CyberChef.
Приведенный ниже пример взят из испытания на базе Android под названием Uncrackable Level 1.
В Cyber Chef перейдите в «Избранное» или «Формат данных» и дважды щелкните «Из Base64» и введите секрет в кодировке Base64 в поле ввода. Теперь нажмите Шифрование/Кодирование > Расшифровка AES.В этом поле введите ключ шифрования , измените режим шифрования на ECB и измените входной параметр на Raw . Теперь вы можете увидеть расшифрованный результат в секции output .
типов алгоритмов шифрования + плюсы и минусы каждого — ключевой фактор
В отличие от симметричного шифрования, асимметричная криптография использует два разных ключа для шифрования и дешифрования. Открытый ключ используется для шифрования сообщения, а закрытый ключ используется для расшифровки.
Закрытый ключ представляет собой совершенно случайное число. Открытый ключ получается из закрытого ключа с помощью математически «сложной» задачи.
Эта «сложная» задача основана на математической операции, которую «легко» выполнить, но «сложно» обратить. Используется ряд различных «сложных» задач, включая задачи на основе целых чисел и задачи на основе эллиптических кривых.
Целочисленная асимметричная криптография использует две основные «сложные» проблемы. Это проблемы факторинга и дискретного логарифмирования.
Проблема разложения на множители основана на том факте, что относительно легко умножить два числа, но трудно их разложить на множители. На самом деле факторизация настолько сложна, что лучший способ сделать это (на «классическом» компьютере) — это перебор методом грубой силы. Кто-то, кто хочет разложить произведение двух простых чисел на множители, должен проверять потенциальные множители, пока не найдет один из двух множителей, что может занять очень много времени.
Алгоритм асимметричного шифрования, основанный на задаче факторинга, будет иметь открытый ключ, рассчитанный с использованием произведения двух закрытых ключей (больших простых чисел).Это вычисление легко выполнить, но любой, кто хочет получить закрытый ключ из открытого ключа, должен будет учесть его, что намного сложнее.
Сложность умножения растет полиномиально с увеличением длины множителей, но сложность разложения на множители растет экспоненциально. Это позволяет найти «золотую середину», когда систему можно использовать, но, по сути, невозможно сломать.
Задача дискретного логарифмирования использует возведение в степень и логарифмирование в качестве «простых» и «сложных» операций. Подобно разложению на множители, сложность вычисления логарифмов растет гораздо быстрее по мере увеличения размера показателя степени.
Симметричное шифрование — это простой криптографический алгоритм по сегодняшним стандартам, однако когда-то он считался современным. Фактически, немецкая армия использовала его для отправки частных сообщений во время Второй мировой войны. Фильм «Игра в имитацию» на самом деле неплохо объясняет, как работает симметричное шифрование и какую роль оно сыграло во время войны.
При симметричном шифровании сообщение, которое набирается в виде простого текста, проходит через математические перестановки, чтобы стать зашифрованным. Зашифрованное сообщение трудно взломать, потому что одна и та же буква обычного текста не всегда получается одинаковой в зашифрованном сообщении. Например, сообщение «ЧЧЧ» не будет зашифровано тремя одинаковыми символами.
Чтобы зашифровать и расшифровать сообщение, вам нужен один и тот же ключ, отсюда и название симметричное шифрование. Хотя расшифровывать сообщения без ключа чрезвычайно сложно, тот факт, что для шифрования и расшифровки сообщения необходимо использовать один и тот же ключ, сопряжен со значительным риском.11) % 14 = 2. Этот расчет работает, потому что открытый и закрытый ключи выбираются так, чтобы они были обратными по выбранному модулю.
Целочисленная асимметричная криптография использует факторинг и задачи дискретного логарифмирования для построения безопасных алгоритмов шифрования. Криптография на эллиптических кривых использует те же проблемы с небольшим отличием.
Вместо использования целых чисел для своих вычислений криптография на основе эллиптических кривых использует точки на эллиптической кривой, как показано выше.Закрытый ключ по-прежнему является случайным числом, но открытый ключ — это точка на кривой.
На этих кривых определено несколько различных математических операций. Два важных здесь:
- Сложение точек (эквивалентно умножению целых чисел)
- Умножение точек (эквивалентно целочисленному возведению в степень)
На этих кривых можно производить вычисления, эквивалентные «простым» операциям факторизации и дискретного логарифмирования. Это означает, что одни и те же базовые алгоритмы могут быть адаптированы для использования с эллиптическими кривыми.
Но зачем? Криптография на основе эллиптических кривых полезна, поскольку ключи меньшей длины обеспечивают тот же уровень безопасности. Это означает, что криптография на основе эллиптических кривых использует меньше памяти, вычислительной мощности и энергии для защиты данных на том же уровне, что и эквивалентный алгоритм на основе целых чисел. Эта экономия может быть важна для систем с ограниченными ресурсами, таких как устройства Интернета вещей (IoT) или смартфоны.
: Глава 7. Основы криптографии :: Часть II: Строительные блоки безопасности :: Практическая безопасность Unix и Интернета :: Системы Linux :: eTutorials.org
Алгоритмы с симметричным ключом используются в основном для массового шифрования данных или потоков данных. Эти алгоритмы предназначены для очень быстро и имеют большое количество возможных ключей. Лучший симметричный ключ алгоритмы обеспечивают превосходную секретность; как только данные зашифрованы с помощью данный ключ, нет быстрого способа расшифровать данные без обладающий одним и тем же ключом.
Алгоритмы симметричного ключа можно разделить на две категории: блочные и поток. Блок алгоритмы шифруют данные блоком (много байтов) за раз, а поток алгоритмы шифруют байт за байтом (или даже бит по крупицам).
7.2.1 Криптографическая стойкость симметричных алгоритмов
Различные алгоритмы шифрования не равный. Некоторые системы не очень хорошо защищают данные, что позволяет зашифрованную информацию, которая может быть расшифрована без знания необходимый ключ.Другие довольно устойчивы даже к самым решительным атака. Способность криптографической системы защищать информацию от атаки называется его сила . Сила зависит от многих факторов, в том числе:
Секретность ключа.
Сложность угадывания ключа или перебора всех возможных ключей (a ключ поиска ). Более длинные клавиши, как правило, более трудно угадать или найти.
Сложность инвертирования алгоритма шифрования без знания ключ шифрования ( взлом шифрование алгоритм).
Наличие (или отсутствие) назад двери или дополнительные способы, которыми файл можно легче расшифровать, не зная ключа.
Возможность расшифровать все зашифрованное сообщение, если вы знаете, как часть его расшифровывает (называется известных открытых текстов). атака ).
Свойства открытого текста и знание этих свойств злоумышленник. Например, криптографическая система может быть уязвима для атаки, если все сообщения, зашифрованные с его помощью, начинаются или заканчиваются известным кусок открытого текста.Подобные закономерности использовались Союзники взломали немецкий шифр Enigma во время Второй мировой войны.
Обычно криптостойкость не доказана; это только опровергнут. Когда предлагается новый алгоритм шифрования, автор алгоритм почти всегда считает, что алгоритм предлагает «совершенная» безопасность, то есть, по мнению автора, нет способа расшифровать зашифрованное сообщение, не обладая соответствующим ключ. Ведь если алгоритм содержал известный недостаток, то автор не стал бы предлагать алгоритм в первую очередь (или в по крайней мере, не предложил бы это с чистой совестью).
В рамках доказательства силы алгоритма математик может показать, что алгоритм устойчив к определенным видам атак которые, как было показано ранее, компрометируют другие алгоритмы. К сожалению, даже алгоритм, устойчивый ко всем известным атака не обязательно безопасна, потому что новые атаки постоянно разрабатывается.
Время от времени некоторые лица или корпорации заявляют, что они изобрели новые алгоритмы симметричного шифрования, значительно более безопасным, чем существующие алгоритмы. Как правило, эти алгоритмов следует избегать. Поскольку нет известных методов атаки против алгоритмов шифрования, которые широко используются сегодня, существует не является причиной для использования новых, непроверенных алгоритмов шифрования, которые могут в них таятся недостатки.
7.
2.2 Длина ключа с алгоритмами симметричного ключаСреди тех, кто не совсем знаком с математикой криптографии длина ключа является темой продолжающееся замешательство.Как мы видели, короткие клавиши могут значительно поставить под угрозу безопасность зашифрованных сообщений, поскольку злоумышленник может просто расшифруйте сообщение всеми возможными ключами, чтобы расшифровать содержание сообщения. Но в то время как короткие клавиши обеспечивают сравнительно небольшая безопасность, очень длинные ключи не обязательно обеспечивают значительно большую практическую безопасность, чем ключи умеренного длина. То есть, хотя ключи в 40 или 56 бит не очень безопасны, ключ из 256 бит не обеспечивает значительно большей реальной безопасности чем ключ из 168 бит или даже ключ из 128 бит.
Чтобы понять это кажущееся противоречие, важно понять, что на самом деле имеется в виду под словами ключ length и как на самом деле работает атака грубой силы.
Внутри компьютера криптографический ключ представлен в виде строки двоичные цифры. Каждая двоичная цифра может быть 0 или 1. Таким образом, если ключ 1 бит, есть два возможных ключа: 0 и 1. Если ключ равен 2 битов, есть четыре возможных ключа: 00, 01, 10 и 11.Если ключ имеет длину 3 бита, существует восемь возможных ключей: 000, 001, 010, 011, 100, 101, 110 и 111. Как правило, каждый добавленный бит ключа удваивает количество ключей. Математическое уравнение, которое связывает количество возможных ключей к количеству бит:
- количество ключей = 2(количество бит)
Если вы пытаетесь расшифровать сообщение и у вас нет копии ключ, самый простой способ расшифровать сообщение — сделать грубый силовая атака.Эти атаки также называются ключевыми поисковыми атаками, потому что они включать в себя попытку каждого возможного ключа, чтобы увидеть, расшифровывает ли конкретный ключ сообщение. Если ключ выбран случайно, то в среднем злоумышленнику нужно будет попробовать половину всех возможных ключей, прежде чем поиск фактического ключа дешифрования.
К счастью для тех из нас, кто зависит от симметричного шифрования алгоритмы, довольно просто использовать более длинные ключи. Каждый немного добавляется, сложность для злоумышленника, пытающегося атака грубой силы удваивается.
Первый широко используемый алгоритм шифрования, DES использовал ключ длиной 56 бит. В Когда был принят DES, многие ученые говорили, что 56 бит было недостаточно: они выступали за ключ вдвое длиннее. Но предполагалось, что это сделало Агентство национальной безопасности США. не хотят, чтобы шифр с более длинной длиной ключа широко применялся, большинство вероятно, потому что такой безопасный шифр значительно усложнил бы его работа по международному наблюдению.Для дальнейшего снижения воздействия, которое DES будет зависеть от его способности собирать международные разведки, корпорациям США было запрещено экспортировать продукты, реализующие алгоритм DES.
В начале 1990-х годов все большее число американских издателей программного обеспечения требовали возможности экспортировать программное обеспечение, которое предлагало по крайней мере хоть какая-то безопасность. В рамках компромисса была заключена сделка между Министерством торговли США, Службой национальной безопасности Агентство и Ассоциация издателей программного обеспечения.По условиям этого соглашения американским компаниям разрешалось экспортировать программное обеспечение для массового рынка, включающее шифрование, при условии что в продуктах используется определенный алгоритм шифрования и длина ключа была ограничена 40 битами. В то же время некоторые американские банки начали использовать алгоритм под названием Triple-DES (по сути, тройное применение алгоритма DES) для шифрования некоторых финансовых транзакции. Он имеет размер ключа 168 бит. Triple-DES описан в следующем разделе.
В октябре 2000 г. Национальный институт стандартов и технологий (NIST) одобрил шифрование Rijndael алгоритм в качестве нового американского расширенного стандарта шифрования. Рейндал может использоваться с ключами 128, 192 или 256 бит. То чрезвычайно высокая скорость алгоритма в сочетании с его статус стандарта, выбранного правительством, означает, что он, скорее всего, предпочтительнее DES, Triple-DES и других алгоритмов в будущее.
Так сколько же бит достаточно? Это зависит от того, насколько быстро злоумышленник может попробуйте разные ключи и как долго вы хотите хранить свою информацию безопасный.Как показано в таблице 7-1, если злоумышленник может попытаться всего 10 ключей в секунду, то 40-битный ключ защитит сообщение на более 3484 лет. Конечно, современные компьютеры может попробовать много тысяч ключей в секунду?и с аппаратное и программное обеспечение специального назначения, они могут испробовать сотни тысячи. Скорость поиска ключей можно еще больше повысить, запустив одну и ту же программу на сотнях или тысячах компьютеров одновременно. Таким образом, можно искать миллион ключей в секунду или больше с использованием современных технологий.Если у вас есть возможность искать миллион ключей в секунду, вы можете попробовать все 40-битные ключи всего за 13 дней.
Если 40-битного ключа явно недостаточно для сохранения информационная безопасность, сколько бит необходимо? В апреле 1993 г. Администрация Клинтона представила шифровальный чип Clipper как часть его депонированного шифрования Инициатива (EEI). Этот чип использовал ключ длиной 80 бит. В виде Таблица 7-1 показывает, что 80-битный ключ более достаточно для многих применений.Если бы вы могли искать миллиард ключей в секунду, для перебора всех 80-битных ключей все равно потребуется 38 млн. годы! Clipper широко критиковали не из-за длины ключа, но поскольку алгоритм шифрования Clipper держался в секрете Агентство национальной безопасности, а также потому, что каждый чип Clipper поставлялся с «черный ход», который позволял информация, зашифрованная каждым чипом Clipper, должна быть расшифрована Правительство США в поддержку правоохранительных органов и разведки потребности.
40 бит | 10 | 10-летний настольный компьютер | 3484 года |
40 бит | 1000 | Типичный настольный компьютер сегодня | 35 лет |
40 бит | 1 миллион | Малая сеть рабочих столов | 13 дней |
40 бит | 1 миллиард | Корпоративная сеть среднего размера | 18 минут |
56 бит | 1 миллион | Настольный компьютер через несколько лет | 2283 года |
56 бит | 1 миллиард | Корпоративная сеть среднего размера | 2. 3 года |
56 бит | 100 миллиардов | ДЭС-крекинг-машина | 8 дней |
64 бита | 1 миллиард | Корпоративная сеть среднего размера | 585 лет |
80 бит | 1 миллион | Малая сеть рабочих столов | 38 миллиардов лет |
80 бит | 1 миллиард | Корпоративная сеть среднего размера | 38 миллионов лет |
128 бит | 1 миллиард | Корпоративная сеть среднего размера | 10 22 лет |
128 бит | 1 миллиард миллиардов (1 x 10 18 ) | Масштабный интернет-проект 2005 года | 10 783 миллиарда лет |
128 бит | 1 x 10 23 | Квантовый компьютер специального назначения в 2015 году? | 108 миллионов лет |
192 бита | 1 миллиард | Корпоративная сеть среднего размера | 2 x 10 41 лет |
192 бита | 1 миллиард миллиардов | Масштабный интернет-проект 2005 года | 2 x 10 32 лет |
192 бита | 1 x 10 23 | Квантовый компьютер специального назначения в 2015 году? | 2 x 10 27 лет |
256 бит | 1 x 10 23 | Квантовый компьютер специального назначения в 2015 году? | 3. 7 х 10 46 лет |
256 бит | 1 x 10 32 | Квантовый компьютер специального назначения в 2040 году? | 3,7 x 10 37 лет |
резкое увеличение размера ключа с 80 до 128 бит. увеличивает количество усилий, чтобы угадать ключ.Как видно из таблицы, если бы был компьютер, который мог бы искать миллиард ключей в секунду, и если бы у вас был миллиард таких компьютеров, это все равно заняло бы 10 783 миллиарда лет для перебора всех возможных 128-битных ключей. Как наше Солнце может стать красным гигантом в течение следующих 4 миллиардов лет и, при этом уничтожить Землю, должен быть 128-битный ключ шифрования достаточно для большинства криптографических применений, если предположить, что нет другие недостатки используемого алгоритма.
В последнее время наблюдается значительный интерес к области квант вычисления. Ученые утверждают, что можно создать компьютеры атомарного размера, специально разработанные для взлома ключей шифрования. Но хотя квантовые компьютеры могли быстро взломать 56-битные ключи DES, маловероятно, что квантовый компьютер сможет создать ввести 128-битный ключ шифрования в разумные сроки: даже если можно взломать 1 x 10 23 ключей в секунду, все равно потребуется 108 миллионов лет, чтобы попробовать все возможные 128-битные ключи шифрования.
К этому моменту должно быть совершенно ясно, что в этом нет необходимости, учитывая параметры криптографии и физики, как мы их понимаем сегодня, чтобы использовать ключи длиной более 128 бит. Тем не менее, похоже, маркетинговый толчок все больше большие и большие клавиши. Алгоритм Rijndael может работать со 128-битными, 192-битными или 256-битными ключами. Если окажется, что есть пока еще скрытый недостаток в алгоритме Rijndael, который выдает половину биты ключа, то использование более длинных ключей может иметь смысл. Почему вы хотели бы использовать эти более длинные длины ключей, это не ясно, но если вы хотите их, они там для вас, чтобы использовать.
7.2.3 Общие алгоритмы симметричного ключа
В настоящее время используется множество алгоритмов с симметричным ключом. показано в таблице 7-2.
Иглобрюх | Блочный шифр, разработанный Schneier | 1-448 бит | л |
ДЕС | DES принят как U.С. государственный стандарт 1977 г. | 56 бит | § |
ИДЕЯ | Блочный шифр, разработанный Massey и Xuejia | 128 бит | л |
МАРС | Финалист AES, разработанный IBM | 128-256 бит | |
RC2 | Блочный шифр, разработанный Rivest | 1-2048 бит | Вт |
RC4 | Поточный шифр, разработанный Rivest | 1-2048 бит | Л, § |
RC5 | Блочный шифр, разработанный Rivest и опубликованный в 1994 году | 128-256 бит | |
RC6 | Финалист AES, разработанный RSA Labs | 128-256 бит | |
Рейндал | Выбор NIST для AES, разработанный Daemen и Rijmen | 128-256 бит | Вт |
Змей | Финалист AES, разработанный Андерсоном, Бихамом и Кнудсеном | 128-256 бит | |
Тройной DES | Тройное применение алгоритма DES | 168 бит | л |
Две рыбы | Кандидат AES, разработанный Schneier | 128-256 бит | |
Ключ к рейтингам: Вт) Отличный алгоритм. Этот алгоритм широко используется и считается безопасным при условии, что ключи достаточной длины использовал. L) Алгоритм кажется надежным, но его постепенно отказываются от других алгоритмов, которые быстрее или считаются более безопасными. ) Алгоритм кажется надежным, но не будет широко применяться, потому что он не был выбран в качестве стандарта AES. §) Использование этого алгоритма больше не рекомендуется из-за короткой длины ключа или математических недостатков.Данные, зашифрованные с помощью этого алгоритма, должны быть в достаточной степени защищены от случайного просмотра, но не выдержат решительной атаки со стороны злоумышленника со средним финансированием. Некоторые из алгоритмов, которые обычно встречаются в области компьютерной безопасности приведены в следующем списке: |
- ДЕС
Стандарт шифрования данных был принят в качестве стандарта правительства США в 1977 году и в качестве стандарта ANSI в 1981. DES — это блочный шифр, использующий 56-битный ключ. несколько различных режимов работы в зависимости от цели, для которой он занят. DES — сильный алгоритм, но сегодня короткий длина ключа ограничивает его использование. Ведь в 1998 году машина специального назначения для «взлома DES» был создан Electronic Frontier Foundation (EFF) менее чем за 250 000 долларов. В одной демонстрации, он нашел ключ к зашифрованному сообщению менее чем за в день совместно с коалицией пользователей компьютеров вокруг Мир.
- Тройной DES
Triple-DES — способ сделать DES значительно более безопасным с использованием алгоритма шифрования DES три раз с тремя разными ключами, общая длина ключа составляет 168 бит. Также называется «3DES». этот алгоритм широко используется финансовыми учреждениями и программа Secure Shell (ssh). Просто используя Дважды DES с двумя разными ключами не повышает его безопасность. степени, которую можно было бы сначала заподозрить из-за теоретического атака открытым текстом под названием встреча посередине , в котором злоумышленник одновременно пытается зашифровать открытый текст с помощью одной операции DES и расшифровки зашифрованного текста с помощью еще одна операция DES, пока не будет найдено совпадение в середине. Triple-DES позволяет избежать этой уязвимости.
- Иглобрюх
Иглобрюх это быстрый, компактный и простой алгоритм блочного шифрования, разработанный Брюс Шнайер. Алгоритм позволяет использовать ключ переменной длины, до 448 символов. бит и оптимизирован для выполнения на 32- или 64-битных процессорах. То Алгоритм не запатентован и находится в открытом доступе. Blowfish используется в Secure Shell и других программах.
- ИДЕЯ
Международный Алгоритм шифрования данных (IDEA) был разработан в Цюрихе, Швейцария, Джеймс Л.Мэсси и Сюэцзя Лай, опубликованная в 1990 году. IDEA использует 128-битный ключ. IDEA используется популярной программой PGP для шифровать файлы и электронную почту. К сожалению, более широкое использование IDEA препятствовала серия патентов на программное обеспечение на алгоритм, которые в настоящее время принадлежат Ascom-Tech AG в Золотурне, Швейцария.
- RC2
Этот блок шифр был первоначально разработан Рональдом Ривестом и хранился в качестве торгового секрет данных RSA Безопасность. Алгоритм был раскрыт анонимной публикацией в Usenet. в 1996 году и кажется достаточно сильным (хотя есть некоторые слабые клавиши). RC2 позволяет использовать ключи от 1 до 2048. биты. Длина ключа RC2 традиционно ограничивалась 40 битами. программное обеспечение, которое было экспортировано для расшифровки в США. Национальное Агенство Безопасности.
- RC4
Этот поток шифр был первоначально разработан Рональдом Ривестом и хранился в качестве торгового секрет RSA Data Security.Этот алгоритм также был раскрыт анонимная публикация в Usenet в 1994 году и, по-видимому, достаточно сильна. RC4 позволяет использовать ключи от 1 до 2048 бит. Длина ключа RC4 была традиционно ограничивается 40 битами в экспортируемом программном обеспечении.
- RC5
Этот блок шифр был разработан Рональдом Ривестом и опубликован в 1994 году. RC5 позволяет определять длину ключа, размер блока данных и количество раунды шифрования.
- Рейндал (AES)
Этот блочный шифр был разработан Джоан Деймен и Винсент Раймен, и был выбран в октябре 2000 года Национальным Институт стандартов и технологий станет Новый расширенный стандарт шифрования США. Рейндал необычайно быстрый и компактный шифр, который может использовать ключи, 128, 192 или 256 бит.
7.2.4 Атаки на алгоритмы симметричного шифрования
Если вы собираетесь использовать криптографию для защиты информации, то вы должны исходить из того, что люди, которым вы не хотите информация будет записывать ваши данные, и, если они определят, что это зашифрован, может попытаться расшифровать его принудительно.Чтобы быть полезной, ваша криптографическая система должна быть устойчивой к такому прямому нападению.
Атаки на зашифрованную информацию делятся на три основных категории. Они:
7.2.4.1 Атаки с поиском ключа (грубая сила)
Как мы как мы уже видели, самый простой способ взломать зашифрованное сообщение — это просто попытаться расшифровать сообщение всеми возможными ключами. Большинство попыток потерпят неудачу, но в конце концов одна из попыток увенчается успехом. и либо разрешить взломщику войти в систему, либо разрешить зашифрованный текст быть расшифрованным.Эти атаки, показанные на рис. 7-3, называются атаками с поиском ключа или атаками грубой силы.
Невозможно защититься от атаки с поиском по ключу потому что нет способа удержать злоумышленника от пытаясь расшифровать ваше сообщение всеми возможными ключами.
Рисунок 7-3. Атака с поиском по ключу
Атаки с поиском по ключу не очень эффективны. И, как мы показали ранее, если выбранный ключ достаточно длинный, атака с перебором ключа даже не достижимый. Например, со 128-битным ключом и любым мыслимым компьютерных технологий, жизнь на Земле прекратит свое существование задолго до даже один ключ может быть взломан!
С другой стороны, многие атаки по ключевому поиску совершаются значительно проще, потому что большинство пользователей выбирают ключи на основе небольших паролей с печатные символы. Чтобы 128-битный ключ был действительно безопасным, все 128 биты должны быть выбраны случайным образом. То есть должно быть 2 128 различных ключа, которые могут быть используется для шифрования данных. Если «128-битный ключ» на самом деле получен из пароля из четырех строчные буквы, то даже если ключ кажется 128-битным длинные, там реально только 26 х 26 х 26 x 26, или 456 976 различных ключей, которые на самом деле могут быть использовал. Вместо 128-битного ключа ключ, выбираемый из четырех строчные буквы имеют эффективную длину ключа от 18 до 19 бит. биты! (Это потому, что 2 18 = 262 144, а 2 19 = 524 288.)
Из этого простого анализа может показаться, что любой из сильных описанные ранее алгоритмы с длиной ключа 128 бит должны быть достаточно для большинства криптографических нужд? как сейчас, так и навсегда более. К сожалению, на это влияет ряд факторов. решение технически, юридически или политически неприемлемое для многих приложений, как мы увидим позже в этой главе.
7.2.4.2 Криптоанализ
Если длина ключа была единственным фактором, определяющим безопасность шифра, каждый, кто заинтересован в обмене секретными сообщениями, просто использовал бы коды со 128-битными ключами, и все криптоаналитики (люди, взламывающие коды) придется искать новую работу.Криптография будет решена раздел математики, похожий на простое сложение.
Что делает криптографию интересной, так это тот факт, что большинство алгоритмы не оправдывают наших ожиданий. Основные поисковые атаки редко требуется разглашать содержимое зашифрованного сообщения. Вместо этого большинство алгоритмов шифрования можно обойти, используя сочетание сложной математики и вычислительной мощности. То Результатом является то, что многие зашифрованные сообщения могут быть расшифрованы без зная ключ.Умелый криптоаналитик иногда может расшифровать зашифрованный текст, даже не зная алгоритма шифрования.
Криптоаналитическая атака может иметь две возможные цели. Криптоаналитик может иметь зашифрованный текст и хочет обнаружить открытый текст, или может имеете зашифрованный текст и хотите обнаружить использованный ключ шифрования чтобы зашифровать его. (Эти цели похожи, но не совсем одинаковы.) Следующие атаки обычно используются, когда алгоритм шифрования известны, и они могут быть применены к зашифрованным файлам или Интернет- трафик:
- Атака по известному открытому тексту
В этом тип атаки, криптоаналитик имеет блок открытого текста и соответствующий блок зашифрованного текста.Хотя это может показаться маловероятным случае, на самом деле это довольно распространено, когда криптография используется для защитить электронную почту (со стандартными заголовками в начале каждое сообщение), стандартные формы или жесткие диски (с известными структурами в заранее определенных местах на диске). Цель известного Атака открытым текстом заключается в определении криптографического ключа (и, возможно, алгоритм), который затем можно использовать для расшифровки других сообщений.
- Атака по выбранному открытому тексту
В этом тип атаки, у криптоаналитика есть объект атаки (неосознанно) шифровать выбранные блоки данных, создавая результат, который затем криптоаналитик может анализировать.Атаки с выбранным открытым текстом выполнить проще, чем может показаться. (Например, предметом атаки может быть радиоканал, который шифрует и ретранслирует сообщения, полученные по телефону.) Цель выбранного Атака открытым текстом заключается в определении криптографического ключа, который может затем использоваться для расшифровки других сообщений.
- Дифференциальный криптоанализ
Эта атака, являющаяся формой атака с выбранным открытым текстом, включает в себя шифрование множества текстов, немного отличаются друг от друга и сравнивают результаты.
- Дифференциальный анализ неисправностей
Эта атака работает против криптографических системы, встроенные в аппаратное обеспечение. Устройство подвергается факторы окружающей среды (тепло, стресс, радиация), направленные на то, чтобы уговорить устройство в совершении ошибок во время шифрования или дешифрования операция. Эти неисправности могут быть проанализированы, и по ним внутреннее состояние устройства, включая шифрование ключ или алгоритм, возможно, могут быть изучены.
- Анализ дифференциальной мощности
Это еще одна атака на криптографическое оборудование — в частности, смарт-карты. Наблюдая мощность, которую смарт-карта использует для шифрования выбранного блока данных, можно узнать немного информации о структура секретного ключа. Подвергая смарт-карту номеру специально подобранных блоков данных и тщательный контроль мощности используется, можно определить секретный ключ.
- Дифференциальный временной анализ
Эта атака аналогична дифференциальной анализ мощности, за исключением того, что злоумышленник тщательно следит за временем что смарт-карта использует для выполнения запрошенного шифрования операции.
Единственный надежный способ определить надежность алгоритма — это нанять конюшню из лучших в мире криптографов и заплатить им, чтобы найти слабость.Такой подход используют США. Национальное Агенство Безопасности. К сожалению, такой подход выходит за рамки способности большинства криптографов, которые вместо этого останавливаются на альтернативном известный как рецензирование .
Экспертная оценка – это процесс, посредством которого большинство математических и научных истин проверяются. Во-первых, человек выдвигает новую идею или предлагает новую теорию. Далее изобретатель пытается проверить свою идею или теорию самостоятельно. Если идея выдержит, затем он публикуется в академическом журнале или иным образом публикуется в сообществе экспертов.Если эксперты мотивированы, они может посмотреть на идею и посмотреть, имеет ли она какую-либо ценность. Если идея встает с течением времени, особенно если многие эксперты пытаются и не опровергнув эту идею, она постепенно начинает рассматриваться как правда.
Экспертная оценка криптографических алгоритмов и компьютерной безопасности программное обеспечение следует аналогичному процессу. Как физические лица или организации придумать новый алгоритм, алгоритм опубликован. Если алгоритм достаточно интересен, криптографы или другие ученые могут быть заинтересованы в том, чтобы найти в нем недостатки.Если алгоритм может выдержать испытание временем, он может быть безопасным, ожидая каких-то новых математическое открытие или разрабатываемая техника.
Важно понимать, что простая публикация алгоритм или часть программного обеспечения не гарантирует, что недостатки будут быть найденным. Алгоритм шифрования Wireless Encryption Protocol (WEP) используемый сетевым стандартом 802.11 был опубликован в течение многих лет до того, как в алгоритме была обнаружена существенная ошибка?недостаток был там все это время, но никто не удосужился найти его.
Процесс рецензирования не идеален, но это лучше, чем альтернатива: никакого обзора вообще. Не верьте людям, которые говорят, что разработали новый алгоритм шифрования, но также говорят, что они не хотят раскрыть, как работает алгоритм, потому что такое раскрытие поставит под угрозу силу алгоритма. На практике существует невозможно сохранить алгоритм в секрете: если алгоритм используется для хранить ценную информацию, злоумышленник купит (или украсть) копию программы, реализующей алгоритм, дизассемблировать программу и выяснить, как она работает.Настоящая криптографическая безопасность заключается в открытость и экспертная оценка, а не алгоритмическая секретность.
7.2.4.3 Системные атаки
Еще один способ взломать код — атаковать криптографическую систему, использующую криптографическую алгоритм, фактически не атакуя сам алгоритм.
Одним из самых ярких случаев системной атаки была Используемый алгоритм шифрования видео VC-I для раннего вещания спутникового телевидения. В течение многих лет видеопираты продавали коробки дешифратора, которые могли бы перехватывать передачи ключей и использовать их для расшифровки передач. Алгоритм шифрования VC-I был звук, но система в целом была слабой. (Этот случай также демонстрирует тот факт, что, когда на карту поставлены большие деньги, люди часто находят недостатки в слабой системе шифрования, и те недостатки будут использованы.)
Многие из первых атак на Netscape реализации SSL фактически были атаки на реализации Netscape Navigator, а не на сам протокол SSL. В одной опубликованной атаке исследователи Дэвид Вагнер и Ян Голдберг из Калифорнийского университета в Беркли. обнаружил, что генератор случайных чисел Navigator был не совсем случайным.Злоумышленникам удалось вплотную следить за компьютером, на котором работал Навигатор, прогнозировать стартовая конфигурация генератора случайных чисел, и определить случайно выбранный ключ, используя довольно простой метод. В ходе другой атаки исследователи обнаружили, что они могут легко модифицировать саму программу Navigator так, чтобы случайное число генератор не будет выполняться. Это полностью избавило от необходимости угадай ключ.
Скрытые каналы — еще одна проблема.Соединенные штаты. Надежная компьютерная система Министерства обороны 1985 г. Критерии оценки определяют скрытый канал как «любой канал связи, который может быть использован процессом для передачи информацию таким образом, который нарушает правила системы. политика безопасности.» Например, даже если злоумышленник не может расшифровать зашифрованные сообщения электронной почты, он может получить информацию, изучив отправителя сообщения, получателя, время, путь через сеть, кодировку набора символов или другие функции, которые часто упускаются из виду теми, кто беспокоится о конфиденциальности сообщений или только целостность.
Для большинства людей идея ключа шифрования довольно абстрактное понятие. важно помните, что ключ шифрования — это не что иное, как последовательность числа. Здесь показаны различные ключи шифрования:
|