Симметричное и ассиметричное шифрование: просто о сложном

Введение в RC6.

Алгоритм RC6 (Rivest’s Cipher 6) — симметричный блочный шифр, использующий в качестве своей основы сеть Фестеля, разработанный Рональдом Ривестом в 1998 году.

Для начала разберемся с терминологией:

Что значит симметричный?

Есть два типа людей шифров:

  1. Симметричные (то, что нам нужно)

  2. Ассиметричные (как-нибудь в другой раз, бро)

В симметричном шифровании, для того чтобы зашифровать и расшифровать данные используется один и тот же ключ. Он должен хранится в секрете. Т.е. ни отправитель, ни получатель не должны никому его показывать. Иначе, ваши данные могут перехватить/изменить или еще чего похуже.

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

Что значит блочный?

Блочное шифрование это один из видов симметричного шифрования. Называется он так, потому что работает с блоками: группами бит, фиксированной длины.

Чтобы стало яснее, рассмотрим один из методов построения блочных шифров: сеть Фестеля.

Какая, какая сеть?

Фестеля. Это конструкция из ячеек. На вход каждой ячейки поступают данные и ключ. А на выходе каждой из них изменённые данные и изменённый ключ.

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

Алгоритм шифрования:

  • Каждый из блоков делится на два подблока одинакового размера — левый и правый.

  • Правый подблок скармливается функции .

  • После чего умножается по модулю 2 (операция xor) с левым блоком .

  • Полученный результат в следующем раунде будет играть роль правого подблока.

  • А правый подблок (без изменений) выступит в роли левого подблока.

Раундом в батле криптографии называют один из последовательных шагов(циклов) обработки данных в алгоритме блочного шифрования. ключ на — ом раунде (рассмотрим позже).

Далее операции повторяются столько раз, сколько задано раундов.

Замечание. Расшифровка информации происходит так же, как и шифрование, с тем лишь исключением, что ключи следуют в обратном порядке.

Выглядит это примерно так:

Тарабарщина, цифирь и другие шифры

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

Интересно, что в Древней Руси тоже были свои способы тайнописи, например литорея, которая делилась на простую и мудрую. В мудрой версии шифра некоторые буквы заменялись точками, палками или кругами. В простой литорее, которая еще называлась тарабарской грамотой, все согласные буквы кириллицы располагались в два ряда. Зашифровывали письмо, заменяя буквы одного ряда буквами другого. 

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


Тайнопись XVI века, в основе которой числовые значения церковнославянских букв

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

Около 1466 года итальянский ученый Леон Альберти изобретает шифровальный диск, состоящий из двух частей: внешней и внутренней. На неподвижном внешнем диске был написан алфавит и цифры. Внутренний подвижный диск также содержал буквы и цифры в другом порядке и являлся ключом к шифру. Для шифрования нужно было найти нужную букву текста на внешнем диске и заменить ее на букву на внутреннем, стоящую под ней. После этого внутренний диск сдвигался, и новая буква зашифровывалась уже с новой позиции. Таким образом, шифр Альберти стал одним из первых шифров многоалфавитной замены, основанных на принципе комбинаторики. Кроме того, Леон Альберти написал одну из первых научных работ по криптографии − «Трактат о шифрах». 


Шифровальный диск Леона Альберти

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

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

Прорывом в криптографии стала книга «Полиграфия» аббата Иоганеса Тритемия 1518 года, рассказывающая в том числе о шифрах с полиалфавитной заменой. Самым известным шифровальщиком XVI века считается дипломат и алхимик из Франции Блез де Виженер, придумавший абсолютно стойкий шифр, в котором использовалось 26 алфавитов, а порядок использования шифра определялся знанием пароля. Можно сказать, что шифр Виженера представлял собой комбинацию нескольких уже упоминавшихся шифров Цезаря.  
 

Алгоритм Диффи–Хеллмана

Рассмотрим пример, немного отдалённый от технологий. Допустим, Алиса хочет отправить Бобу подарок в другой город. Она хочет воспользоваться почтой, но боится, что почтальон откроет коробку и извлечёт содержимое посылки. Поэтому Алиса вешает замок на коробку и отправляет её. Боб получает посылку, но на ней висит замок Алисы. Ключ от этого замка тоже у Алисы, поэтому открыть коробку он не может. Мы столкнулись с проблемой, которая в симметричном шифровании не имеет разумного решения. Однако Боб находит выход из ситуации: он вешает второй замок на посылку и возвращает её Алисе. Алиса получает посылку с двумя замками, и снимает свой — даже без него почтальон не сможет вскрыть коробку, ведь она закрыта замком Боба. Наконец, коробка с одним замком доставляется Бобу, и он её открывает.

В математике всё немного сложнее: обычно мы не можем снять шифр из-под другого, поэтому у Алисы не получится просто так снять свой замок, оставив при этом замок Боба. Однако, Диффи, Хеллман и Меркл в 1976 году разработали алгоритм, который позволяет аналогичным способом двум сторонам получить общий ключ шифрования. Он называется алгоритмом Диффи–Хеллмана и основан на возведении в степень по модулю.

У алгоритма Диффи–Хеллмана есть серьёзный недостаток. Предположим, почтальон Мэллори всё же хочет получить доступ к коробке. Получив коробку Алисы, она сама повесит свой замок и отправит её обратно, указав Боба в качестве отправителя. Алиса снимет свой замок и вернёт посылку лишь с ключом Мэллори. Тогда Мэллори сможет открыть коробку. Более того, она может повесить свой замок снова и отправить коробку уже Бобу. Ни Алиса, ни Боб не смогут понять, что коробку кто-то открыл, и даже возможно изменил её содержимое. Такая атака называется MITM (англ. man in the middle — человек посередине).

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

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

В таких алгоритмах широко применяется подход односторонней функции: для любого x легко вычислить f(x), но сложно по значению f(x) получить исходный x. Эти алгоритмы используют два ключа — открытый и закрытый. Открытый ключ используется для шифрования, а закрытый — для расшифровывания. Таким образом, отправить сообщение может кто угодно, а прочитать — только владелец ключа.

История

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

Предвкушение

В своей книге 1874 г. Принципы науки , Уильям Стэнли Джевонс писал:

Здесь он описал связь односторонних функций с криптографией и продолжил обсуждение конкретно проблемы факторизации, используемой для создания функции лазейки . В июле 1996 года математик Соломон В. Голомб сказал: «Джевонс предвидел ключевую особенность алгоритма RSA для криптографии с открытым ключом, хотя он определенно не изобрел концепцию криптографии с открытым ключом».

Секретное открытие

В 1970 году Джеймс Эллис , британский шифровальщик из штаб-квартиры правительства Соединенного Королевства (GCHQ), задумал возможность «несекретного шифрования» (теперь называемого криптографией с открытым ключом), но не нашел способа его реализовать. В 1973 году его коллега Клиффорд Кокс внедрил то, что стало известно как алгоритм шифрования RSA , дав практический метод «несекретного шифрования», а в 1974 году другой математик и криптограф GCHQ, Малкольм Дж. Уильямсон , разработал то, что теперь известно как Обмен ключами Диффи – Хеллмана . Схема также была передана Агентству национальной безопасности США . Обе организации имели военную направленность, и в любом случае были доступны лишь ограниченные вычислительные мощности; потенциал криптографии с открытым ключом остался нереализованным ни одной из организаций:

Эти открытия не были публично признаны в течение 27 лет, пока исследование не было рассекречено британским правительством в 1997 году.

Публичное открытие

В 1976 году Уитфилд Диффи и Мартин Хеллман опубликовали криптосистему с асимметричным ключом, которые под влиянием работы Ральфа Меркла по распределению открытых ключей раскрыли метод согласования открытых ключей. Этот метод обмена ключами, который использует , стал известен как обмен ключами Диффи – Хеллмана . Это был первый опубликованный практический метод установления общего секретного ключа по аутентифицированному (но не конфиденциальному) каналу связи без использования предварительного общего секрета. «Техника согласования открытых ключей» Меркла стала известна как «Пазлы Меркла» , была изобретена в 1974 году и опубликована только в 1978 году.

В 1977 году Рон Ривест , Ади Шамир и Леонард Адлеман независимо друг от друга изобрели обобщение схемы Кокса, работавших тогда в Массачусетском технологическом институте . Последние авторы опубликовали свою работу в 1978 году Мартин Гарднер «s Scientific American колонке, и алгоритм стал известен , как RSA , с их инициалами. RSA использует возведение в степень по модулю произведения двух очень больших простых чисел для шифрования и дешифрования, выполняя как шифрование с открытым ключом, так и цифровые подписи с открытым ключом. Его безопасность связана с чрезвычайной трудностью факторизации больших целых чисел , проблемой, для которой не существует известной эффективной общей техники (хотя разложение на простые множители может быть получено с помощью атак грубой силы; это тем труднее, чем больше простые множители). Описание алгоритма было опубликовано в колонке « Математические игры» в августовском выпуске журнала Scientific American за 1977 год .

С 1970-х годов было разработано большое количество разнообразных методов шифрования, цифровой подписи, согласования ключей и других методов, включая криптосистему Рабина , шифрование Эль-Гамаля , DSA и криптографию на основе эллиптических кривых .

Можно ли восстановить расширенный ключ, зная какой-либо из раундовых?

Достаточно интересный вопрос, возникший у меня при написании этой статьи.

Для ответа на него давайте рассмотрим расширенный ключ как ряд 32-х битных слов: w, w1, w2, w3, …, w40, w41, w42, w43, где w, w1, w2, w3 — 128-битный ключ AES, а w40, w41, w42, w43 — последний раундовый ключ. Процесс расширения ключа определяется как wi = wi-4 xor Fi(wi-1), где Fi — это рассмотренная выше функция, определяемая процедурой KeyExpansion. Начиная с w, w1, w2, w3 этот процесс позволяет вычислить остальную часть расширенного ключа.

Теперь давайте предположим, что злоумышленнику известен последний раундовый ключ шифрования AES-128. Он может переписать процесс расширения ключа следующим образом: wj = wj+4 xor Fj+4(wj+3). Это получается простой заменой j = i — 4 и переупорядочиванием. Таким образом, злоумышленник, имея в распоряжении w40, w41, w42, w43 ,cможет восстановить все слова вплоть до w.

Эта проблема становится не столь критичной в случае с AES-192 и AES-256. Действительно, если атакующему удается получить один раундовый ключ из 256-битного ключа AES, это уменьшает количество возможных вариантов AES ключей с 2256 до 2128, в таком случае восстановить полный ключ все еще невозможно с вычислительной точки зрения.

Влияние атак квантовых вычислений на силу ключа

Два наиболее известных квантовых вычислений атаки основаны на алгоритме Шора и алгоритма Гровера . Из этих двух Shor’s представляет больший риск для существующих систем безопасности.

Многие предполагают, что производные от алгоритма Шора эффективны против всех распространенных алгоритмов с открытым ключом, включая RSA , алгоритм Диффи-Хеллмана и криптографию на основе эллиптических кривых . По словам профессора Жиля Брассара, эксперта в области квантовых вычислений: «Время, необходимое для разложения целого числа RSA на множители, совпадает с порядком времени, необходимого для использования того же целого числа в качестве модуля для одного шифрования RSA. Другими словами, это не требует больше времени. пора взломать RSA на квантовом компьютере (с точностью до мультипликативной константы), чем законно использовать его на классическом компьютере ». По общему мнению, эти алгоритмы с открытым ключом небезопасны при любом размере ключа, если станут доступны достаточно большие квантовые компьютеры, способные выполнять алгоритм Шора. Последствия этой атаки заключаются в том, что все данные, зашифрованные с использованием современных систем безопасности, основанных на стандартах, таких как вездесущий SSL, используемый для защиты электронной коммерции и интернет-банкинга, и SSH, используемый для защиты доступа к чувствительным компьютерным системам, находятся под угрозой. Зашифрованные данные, защищенные с помощью алгоритмов с открытым ключом, могут быть заархивированы и впоследствии могут быть повреждены.

Широко распространено мнение, что распространенные симметричные шифры (такие как AES или Twofish ) и хэш-функции, устойчивые к коллизиям (такие как SHA ), обеспечивают большую защиту от известных атак квантовых вычислений. Считается, что они наиболее уязвимы для алгоритма Гровера . Беннет, Бернштейн, Брассард и Вазирани доказали в 1996 году, что поиск ключа методом перебора на квантовом компьютере не может быть быстрее, чем примерно 2 n / 2 вызовов базового криптографического алгоритма, по сравнению с примерно 2 n в классическом случае. Таким образом, при наличии больших квантовых компьютеров n- битный ключ может обеспечить как минимум n / 2 бит безопасности. Квантовая грубая сила легко подавляется удвоением длины ключа, что требует небольших дополнительных вычислительных затрат при обычном использовании. Это означает, что для достижения 128-битного рейтинга безопасности против квантового компьютера требуется как минимум 256-битный симметричный ключ. Как упоминалось выше, в 2015 году АНБ объявило, что планирует перейти на квантово-устойчивые алгоритмы.

По данным АНБ:

По состоянию на 2016 год набор алгоритмов национальной коммерческой безопасности АНБ включает:

Алгоритм использование
RSA 3072-бит или больше Создание ключа, электронная подпись
Diffie-Hellman (DH) 3072-бит или больше Ключевое учреждение
ECDH с NIST P-384 Ключевое учреждение
ECDSA с NIST P-384 Цифровой подписи
SHA-384 Честность
AES-256 Конфиденциальность

Виды алгоритмов симметричного шифрования

В зависимости от принципа работы алгоритмы симметричного шифрования делятся на два типа:

  • блочные;
  • потоковые.

Блочные алгоритмы шифруют данные блоками фиксированной длины (64, 128 или другое количество бит в зависимости от алгоритма). Если все сообщение или его финальная часть меньше размера блока, система дополняет его предусмотренными алгоритмом символами, которые так и называются дополнением.

К актуальным блочным алгоритмам относятся:

  • AES
  • ГОСТ 28147-89
  • RC5
  • Blowfish
  • Twofish

Потоковое шифрование данных предполагает обработку каждого бита информации с использованием гаммирования, то есть изменения этого бита с помощью соответствующего ему бита псевдослучайной секретной последовательности чисел, которая формируется на основе ключа и имеет ту же длину, что и шифруемое сообщение. Как правило, биты исходных данных сравниваются с битами секретной последовательности с помощью логической операции XOR (исключающее ИЛИ, на выходе дающее 0, если значения битов совпадают, и 1, если они различаются).

Потоковое шифрование в настоящее время используют следующие алгоритмы:

  • RC4
  • Salsa20
  • HC-256
  • WAKE

использовать

Эти методы используются в настоящее время, например, B. используется в трафике электронной почты ( OpenPGP , S / MIME ), а также в криптографических протоколах, таких как SSH или SSL / TLS . SSL / TLS используется в большей степени, например, как протокол https для безопасной связи между веб-браузером и сервером.

Для шифрования открытый ключ применяется к шифруемому тексту. Затем зашифрованный текст снова дешифруется держателем ключа с помощью закрытого ключа.

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

Для создания подписи из отправляемого сообщения создается хеш-значение, которое подписывается закрытым ключом. Затем сообщение и подпись отправляются получателю, при этом фактическая подпись не требует шифрования, поскольку это подпись (обеспечивающая целостность и подлинность), а не шифрование (обеспечивающая конфиденциальность).

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

Важные моменты о симметричном и асимметричном шифровании

Самое главное отличие симметричного и асимметричного шифрования заключается в их подходе. Поэтому когда вы слышите или читаете статью про их сравнение вида «этот алгоритм лучше» без упоминания конкретики (определенных условий и задач), то можете смело начинать заниматься другими делами, так как это весьма бесполезное занятие аналогичное спору «Что лучше? Танк или пароход?». Без конкретики, ни то и ни другое. Тем не менее, есть важные моменты, о которых стоит знать:

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

2. Асимметричное шифрование позволяет стартовать безопасное соединение без усилий со стороны пользователя. Симметричный же алгоритм предполагает, что пользователю необходимо «еще узнать каким-то образом пароль». Тем не менее, стоит понимать, что асимметричные алгоритмы так же не обеспечивают 100% безопасности. К примеру, они подвержены атакам «человек по середине». Суть последней заключается в том, что между вами и сервером устанавливается компьютер, который для вас отсылает свой открытый ключ, а для передачи данных от вас использует открытый ключ сервера.

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

4. Симметричные алгоритмы обычно строятся на основе некоторых блоков с математическими функциями преобразования. Поэтому модифицировать такие алгоритмы легче. Асимметрические же алгоритмы обычно строятся на некоторых математических задачах, например. RSA построен на задаче возведения в степень и взятия по модулю. Поэтому их практически невозможно или очень сложно модифицировать.

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

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

7. Наличие шифрования не является гарантом безопасности. Его всегда необходимо рассматривать в купе с другими подходами.

Преимущества AES

К основным преимуществам данного алгоритма относят:

  • Рассеивание — изменение любого знака ключа или открытого текста влияет на большое количество знаков шифротекста.

  • Перемешивание — используемые преобразования затрудняют получение статистических зависимостей между открытым и закрытым текстом.

  • Не подвержен многим видам криптоаналитических атак, таких как: дифференциальный криптоанализ, линейный криптоанализ, square — атака.

  • Байт-ориентированная структура, что дает хорошие перспективы для реализации алгоритма в будущих процессорах.

  • Высокое быстродействие на различных платформах.

Немного про RC5

RC5 блочный шифр, разработанный Рональдом Ривестом в 1994 году. Одно из отличий от RC6 это то, что он имеет два регистра на входе и на выходе вместо четырех. Второе отсутствие операции умножения в процессе вычислений.

Рональд Ривест писал, что при создании этого шифра он придерживался нескольких правил:

RC5 должен быть блочным шифром. Т.е. открытый и зашифрованный текст представляют собой битовые последовательности (блоки) и секретный ключ должен использоваться как в процессе шифрования, так и в процессе расшифровки.
RC5 должен использовать только примитивные операции, реализованные на большинстве процессоров.
RC5 должен быть адаптирован к процессорам с разной длиной машинного слова. Например, когда станут доступны 64-битные процессоры, RC5 сможет на них работать.
RC5 должен быть быстрым. Т.е. основными вычислительными операциями должны быть операторы, которые одновременно работают с целыми словами.
RC5 должен иметь переменное количество раундов. Чтобы пользователь мог выбирать между более высокой скоростью вычислений и более высокой безопасностью.
RC5 должен иметь ключ переменной длины. Чтобы пользователь мог выбрать подходящий для него уровень безопасности.
RC5 должен быть простым в реализации и иметь невысокие требования к памяти

Последнее, но немаловажное RC5 должен обеспечивать высокую безопасность при выборе подходящих значений параметров.

Процесс подготовки ключа у RC5 точно такой же, как и у RC6. А вот сам алгоритм шифрования и расшифровки проще. Cхема шифрования RC5:

А псевдокод буквально состоит из пяти строчек:

Здесь стоит отметить, что за один раунд в RC5 одновременно обновляются обе переменные.

Симметричное шифрование

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

Другими словами, стоит кому-либо узнать этот пароль, как безопасность тут же нарушается

Поэтому если используется симметричное шифрование, немалое внимание должно придаваться вопросу создания и сохранения в безопасности самого пароля

Он не должен передаваться в открытом виде, неважно сеть это или же листочек, прикрепленный к монитору. Пароль должен быть достаточно сложным, чтобы его нельзя было получить простым перебором

Если пароль используется несколькими людьми, то должен быть продуман безопасный метод его распространения, а так же систему оповещения на случай, если пароль станет известен кому-либо еще

Пароль должен быть достаточно сложным, чтобы его нельзя было получить простым перебором. Если пароль используется несколькими людьми, то должен быть продуман безопасный метод его распространения, а так же систему оповещения на случай, если пароль станет известен кому-либо еще.

Несмотря на свои ограничения, симметричное шифрование имеет большое распространение. В основном из-за простоты понимания всего процесса (один пароль) и технической нагрузки (обычно, такие алгоритмы быстрые).

Шифр и ключ Anchor link

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

Каковы отличия чего-то зашифрованного от непонятного?

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

Шифр — это набор правил (алгоритм), используемый при шифровании и расшифровывании. Это чётко определённые, выраженные в виде формулы правила, которым необходимо следовать.

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

Описание алгоритма дешифрования

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

  1. Расширение ключа — KeyExpansion;

  2. 9 раундов дешифрования, каждый из которых состоит из преобразований:

    · AddRoundKey — суммирование state с раундовым ключом;

    · InverseMixColumns — обратная перестановка столбцов state;

    · InverseShiftRows — обратный циклический сдвиг столбцов state;

    · SubBytes — замена байтов state по обратной таблице замен InverseS- box;

  3. Финальный раунд:

    · AddRoundKey

    · InverseShiftRows

    · InverseSubBytes

Заключение

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

Отмечу, что другие существующие алгоритмы создания ЭП основаны на схожих принципах, поэтому надеюсь, что после прочтения этой статьи вам будет проще разобраться в них. «Следующей по сложности» я обозначу криптосистему Эль-Гамаля, но о ней уже не в этом посте.

Спасибо за внимание!