0

Шифрование данных

Криптографические методы защиты информации

Лекции

3. ОСНОВНЫЕ ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ. КЛАССИФИКАЦИЯ ШИФРОВ

3.1. Основные термины и определения.

3.2. Основные требования, предъявляемые к криптосистемам.

3.3. Классификация криптографических систем.

Вопросы для самопроверки.

3.1. Основные термины и определения

Одно из основных понятий криптографии — шифр (араб. صِفْر (sifr) — «ноль», «ничто», «пустота», откуда фр. chiffre — «цифра»; арабы первыми стали заменять буквы на цифры с целью защиты исходного текста).

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

Составными элементами шифра являются:

— алфавиты для записи исходных сообщений (защищаемой информации, открытого текста) и шифрованных сообщений (шифртекстов, шифрограмм, криптограмм);

— алгоритмы криптографического преобразования (зашифрования и дешифрования);

— множество ключей.

Азбука или алфавит (греч. ἀλφάβητος) — форма письменности, основанная на стандартном наборе знаков, один или набор которых соответствуют фонемам1 языка. В общем случае алфавит для записи исходных сообщений и алфавит для записи шифрованных сообщений могут отличаться. Например, исходные сообщения записываются с помощью букв, а шифрограммы с помощью цифр или графических обозначений.

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

Шифрование (зашифрование) — процесс применения шифра к защищаемой информации, т.е. преобразование исходного сообщения в зашифрованное.

Дешифрование (расшифрование) — процесс, обратный шифрованию, т. е. преобразование шифрованного сообщения в исходное.

Алгоритмы шифрования и зашифрования, как правило, отличаются друг от друга, но могут и совпадать. В частности, в некоторых комбинированных блочных шифрах (DES, ГОСТ 28147-89) алгоритмы совпадают, но отличаются порядком использования ключа (ключевых элементов). Алгоритм шифрования может включать в себя предварительное кодирование, а алгоритм расшифрования — обратное перекодирование. Например, в аддитивных шифрах перед шифрованием буквы (символы) исходного сообщения заменяются на числа, а результат расшифрования в виде чисел преобразуется в буквы (символы). Аналогичная ситуация имеет место и в некоторых шифрах замены (шифр Хилла), комбинированных блочных шифрах, асимметричных шифрах.

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

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

f(P, k1) = C, (3.1)

g(C, k2) = P, (3.2)

В настоящее время разработкой методов шифрования и дешифрования информации (в т.ч. и без знания ключа) занимается криптология (греч. κρυπτός — тайный, λόγος — слово, знание). Криптология разделяется на два направления — криптографию и криптоанализ. Цели этих двух правлений криптологии прямо противоположны.

Криптография (греч. κρυπτός — скрытый и γράφω — пишу, рисую) – наука о методах обеспечения конфиденциальности (невозможности прочтения информации посторонним) и аутентичности (целостности и подлинности авторства, а также невозможности отказа от авторства) информации.

Криптоанализ (греч. κρυπτός — скрытый и ανάλυση — разложение, расчленение) – наука, занимающаяся вопросами оценки сильных и слабых сторон методов шифрования, а также разработкой методов, позволяющих взламывать криптосистемы.

Следует различать криптографические методы сокрытия информации (шифрование) и кодирование. Кодирование – представление информации в альтернативном виде. Шифрование является частным случаем кодирования и предназначено для обеспечения конфиденциальности информации. С точки зрения решения этой задачи, кодирование – это безключевое шифрование, в котором преобразование построено на алгоритме кодирования или кодовой таблице. Различают:

— общедоступные кодовые системы, предназначенные для преобразования информации в форму, удобную для передачи, хранения или автоматической обработки (азбука Морзе, Unicode, штрихкод);

— секретные кодовые системы, предназначенные, как и криптографические системы, для обеспечения конфиденциальности (номенклаторы, «Код Госдепартамента», «Американский код для окопов», «Речные коды : Потомак»).

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

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

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

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

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

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

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

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

— от вида защищаемой информации (документальная, телефонная, телевизионная, компьютерная и т.д.);

— от объема и требуемой скорости передачи шифрованной информации;

— от ценности защищаемой информации (некоторые тайны должны сохраняться десятилетиями, а некоторые — уже через несколько часов можно разгласить);

— от возможностей владельцев секретной информации, а также от возможностей противника (одно дело — противостоять одиночке, а другое дело — мощной государственной структуре).

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

1 Фонема (др.-греч. φώνημα — «звук») — минимальная смыслоразличимая единица языка.

3.2. Основные требования, предъявляемые к криптосистемам

Для современных криптографических систем можно сформулировать следующие требования:

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

— временные и стоимостные затраты на защиту информации должны быть приемлемыми при заданном уровне ее секретности (затраты на защиту не должны быть чрезмерными);

— процедуры шифрования и дешифрования не должны зависеть от длины сообщения;

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

— любой ключ из множества возможных должен обеспечивать надежную защиту информации;

— незначительное изменение ключа должно приводить к существенному изменению вида зашифрованного сообщения;

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

— зашифрованное сообщение должно поддаваться чтению только при наличии ключа.

3.3. Классификация шифров

Существует несколько классификаций шифров. Рассмотрим некоторые из них.

Рис.3.1. Классификация шифров

I. По области применения различают шифры ограниченного и общего использования.

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

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

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

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

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

В аддитивных шифрах буквы алфавита заменяются числами, к которым затем добавляются числа секретной случайной (псевдослучайной) числовой последовательности (гаммы), после чего берется остаток от деления по модулю (операция mod). Если исходное сообщение и гамма представляются в битовом виде, то при шифровании и расшифровании применяется логическая операция «Исключающее ИЛИ» (XOR, сложение по модулю 2).

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

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

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

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

— потоковые шифры – процедура преобразование применяется к отдельному символу сообщения;

— блочные шифры – процедура преобразование применяется к набору (блоку) символов сообщения.

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

IV. По стойкости шифры делятся на три группы:

— совершенные (абсолютно стойкие, теоретически стойкие) – шифры, заведомо неподдающиеся вскрытию (при правильном использовании). Дешифрование секретного сообщения приводит к нескольким осмысленным равновероятным открытым сообщениям;

— практически (вычислительно, достаточно) стойкие – шифры, вскрытие которых за приемлемое время невозможно на современном или перспективном уровне вычислительной техники. Практическая стойкость таких систем базируется на теории сложности и оценивается исключительно на какой-то определенный момент времени с двух позиций:

— вычислительная сложность полного перебора;

— известные на данный момент слабости (уязвимости) и их влияние на вычислительную сложность;

— нестойкие шифры.

Перевод статьи «10 codes and ciphers»

Необходимость засекречивать важные послания возникла еще в древности. Со временем люди находили новые, все более сложные способы делать послания недоступными чужим глазам. Вопреки распространенному мнению, код и шифр — это не одно и то же. В коде каждое слово заменяется на какое-то иное кодовое слово, в то время как в шифре заменяются сами символы сообщения. Когда люди говорят «код», они, как правило, имеют в виду «шифр». Древние рукописи и языки были поняты с помощью техник декодирования и дешифрования. Самый известный пример — Розеттский камень Древнего Египта. Фактически коды и шифры определяли исход многих войн и политических интриг на протяжении всей истории человечества. Существуют тысячи типов шифрования сообщений, но в этой статье мы рассмотрим лишь 10 самых известных и значимых из них.

Стеганография

Стеганография — это искусство скрытого письма. Этой технике даже больше лет, чем кодам и шифрованию. Например, сообщение может быть написано на бумаге, покрыто ваксой и проглочено с той целью, чтобы незаметно доставить его получателю. Другой способ — нанести сообщение на бритую голову курьера, подождать, пока волосы вырастут заново и скроют послание. Лучше всего для стеганографии использовать повседневные объекты. Когда-то в Англии использовался такой метод: под некоторыми буквами на первой странице газеты стояли крохотные точки, почти невидимые невооруженным глазом. Если читать только помеченные буквы, то получится секретное сообщение! Некоторые писали сообщение первыми буквами составляющих его слов или использовали невидимые чернила. Была распространена практика уменьшения целых страниц текста до размера буквально одного пикселя, так что их было легко пропустить при чтении чего-то относительно безобидного. Стеганографию лучше всего использовать в сочетании с другими методами шифрования, так как всегда есть шанс, что ваше скрытое послание обнаружат и прочитают.

ROT1

Этот шифр известен многим детям. Ключ прост: каждая буква заменяется на следующую за ней в алфавите. Так, A заменяется на B, B на C, и т.д. «ROT1» значит «ROTate 1 letter forward through the alphabet» (англ. «сдвиньте алфавит на одну букву вперед»). Сообщение «I know what you did last summer» станет «J lopx xibu zpv eje mbtu tvnnfs». Этот шифр весело использовать, потому что его легко понять и применять, но его так же легко и расшифровать. Из-за этого его нельзя использовать для серьезных нужд, но дети с радостью «играют» с его помощью. Попробуйте расшифровать сообщение «XBT JU B DBU J TBX?».

Транспозиция

В транспозирующих шифрах буквы переставляются по заранее определенному правилу. Например, если каждое слово пишется задом наперед, то из «all the better to see you with» получается «lla eht retteb ot ees joy htiw». Другой пример — менять местами каждые две буквы. Таким образом, предыдущее сообщение станет «la tl eh eb tt re ot es ye uo iw ht». Подобные шифры использовались в Первую Мировую и Американскую Гражданскую Войну, чтобы посылать важные сообщения. Сложные ключи могут сделать такой шифр довольно сложным на первый взгляд, но многие сообщения, закодированные подобным образом, могут быть расшифрованы простым перебором ключей на компьютере. Попробуйте расшифровать «THGINYMROTSDNAKRADASAWTI».

Азбука Морзе

В азбуке Морзе каждая буква алфавита, все цифры и наиболее важные знаки препинания имеют свой код, состоящий из череды коротких и длинных сигналов, часто называемых «точками и тире». Так, A — это «•–», B — «–•••», и т.д. В отличие от большинства шифров, азбука Морзе используется не для затруднения чтения сообщений, а наоборот, для облегчения их передачи (с помощью телеграфа). Длинные и короткие сигналы посылаются с помощью включения и выключения электрического тока. Телеграф и азбука Морзе навсегда изменили мир, сделав возможной молниеносную передачу информации между разными странами, а также сильно повлияли на стратегию ведения войны, ведь теперь можно было можно осуществлять почти мгновенную коммуникацию между войсками.

6. Шифр Цезаря

Шифр Цезаря называется так, как ни странно, потому что его использовал сам Юлий Цезарь. На самом деле шифр Цезаря — это не один шифр, а целых двадцать шесть, использующих один и тот же принцип! Так, ROT1 — всего один из них. Получателю нужно сказать, какой из шифров используется. Если используется шифр «G», тогда А заменяется на G, B на H, C на I и т.д. Если используется шифр «Y», тогда А заменяется на Y, B на Z, C на A и т.д. На шифре Цезаря базируется огромное число других, более сложных шифров, но сам по себе он не представляет из себя интереса из-за легкости дешифровки. Перебор 26 возможных ключей не займет много времени. Li bra ghflskhu wklv dqg bra nqrz lw, fods brxu kdqgv.

Моноалфавитная замена

ROT1, азбука Морзе, шифр(ы) Цезаря относятся к одному и тому же типу шифров — моноалфавитной замене. Это значит, что каждая буква заменяется на одну и только одну другую букву или символ. Такие шифры очень легко расшифровать даже без знания ключа. Делается это при помощи частотного анализа. Например, наиболее часто встречающаяся буква в английском алфавите — «E». Таким образом, в тексте, зашифрованном моноалфавитным шрифтом, наиболее часто встречающейся буквой будет буква, соответствующая «E». Вторая наиболее часто встречающаяся буква — это «T», а третья — «А». Человек, расшифровывающий моноалфавитный шифр, может смотреть на частоту встречающихся букв и почти законченные слова. Так, «T_E» с большой долей вероятности окажется «ТНЕ». К сожалению, этот принцип работает только для длинных сообщений. Короткие просто не содержат в себе достаточно слов, чтобы с достаточной достоверностью выявить соответствие наиболее часто встречающихся символов буквам из обычного алфавита. Мария Стюарт использовала невероятно сложный моноалфавитный шифр с несколькими вариациями, но когда его наконец-то взломали, прочитанные сообщения дали ее врагам достаточно поводов, чтобы приговорить ее к смерти. Ptbndcb ymdptmq bnw yew, bnwzw raw rkbcriie wrze bd owktxnwa.

Шифр Виженера

Этот шифр сложнее, чем моноалфавитные. Представим, что у нас есть таблица, построенная по тому же принципу, что и приведенная выше, и ключевое слово, допустим, «CHAIR». Шифр Виженера использует тот же принцип, что и шифр Цезаря, за тем исключением, что каждая буква меняется в соответствии с кодовым словом. В нашем случае первая буква послания будет зашифрована согласно шифровальному алфавиту для первой буквы кодового слова (в нашем случае «С»), вторая буква — согласно алфавиту для второй буквы кодового слова («H»), и так далее. В случае, если послание длиннее кодового слова, то для (k*n+1)-ой буквы (где n — это длина кодового слова) вновь будет использован алфавит для первой буквы кодового слова, и так далее. Очень долгое время шифр Виженера считался невзламываемым. Чтобы его расшифровать, для начала угадывают длину кодового слова и применяют частотный анализ к каждой n-ной букве послания, где n — предполагаемая длина кодового слова. Если длина была угадана верно, то и сам шифр вскроется с большей или меньшей долей вероятности. Если предполагаемая длина не дает верных результатов, то пробуют другую длину кодового слова, и так далее до победного конца. Eoaqiu hs net hs byg lym tcu smv dot vfv h petrel tw jka.

Настоящие коды

В настоящих кодах каждое слово заменяется на другое. Расшифровывается такое послание с помощью кодовой книги, где записано соответствие всех настоящих слов кодовым, прямо как в словаре. Преимущества такого способа в том, что сообщению необходимо быть ЧРЕЗВЫЧАЙНО длинным, чтобы можно было его взломать с помощью частотного анализа, так что коды полезнее некоторых шифров. Многие страны использовали коды, периодически их меняя, чтобы защититься от частотного анализа. Тем не менее, есть и минус: кодовая книга становится критическим предметом, и в случае, если она будет украдена, то с ее помощью больше будет невозможно что-либо зашифровать, и придется придумывать новый код, что требует огромных усилий и затрат времени. Обычно коды используют только богатые и влиятельные люди, которые могут поручить работу по их составлению другим.

Шифр Энигмы

Энигма — это шифровальная машина, использовавшаяся нацистами во времена Второй Мировой. Принцип ее работы таков: есть несколько колес и клавиатура. На экране оператору показывалась буква, которой шифровалась соответствующая буква на клавиатуре. То, какой будет зашифрованная буква, зависело от начальной конфигурации колес. Соль в том, что существовало более ста триллионов возможных комбинаций колес, и со временем набора текста колеса сдвигались сами, так что шифр менялся на протяжении всего сообщения. Все Энигмы были идентичными, так что при одинаковом начальном положении колес на двух разных машинах и текст выходил одинаковый. У немецкого командования были Энигмы и список положений колес на каждый день, так что они могли с легкостью расшифровывать сообщения друг друга, но враги без знания положений послания прочесть не могли. Когда Энигма попала в руки к союзникам, они все равно сперва не могли ничего с ней сделать, потому что не знали положений-ключей. Дело по взлому шифра Энигмы было начато в польской разведке и доведено до конца в британской с помощью ученых и специальных машин (например, Turing Bombe, чья работа заключалась в том, чтобы моделировать одновременно работу сразу нескольких десятков Энигм). Отслеживание коммуникаций нацистов дало армии союзников важное преимущество в войне, а машины, использовавшиеся для его взлома, стали прообразом современных компьютеров.

Turing Bombe

1. Шифрование публичным ключом

Алгоритм шифрования, применяющийся сегодня в различных модификациях буквально во всех компьютерных системах. Есть два ключа: открытый и секретный. Открытый ключ — это некое очень большое число, имеющее только два делителя, помимо единицы и самого себя. Эти два делителя являются секретным ключом, и при перемножении дают публичный ключ. Например, публичный ключ — это 1961, а секретный — 37 и 53. Открытый ключ используется для того, чтобы зашифровать сообщение, а секретный — чтобы расшифровать. Без секретного ключа расшифровать сообщение невозможно. Когда вы отправляете свои личные данные, допустим, банку, или ваша банковская карточка считывается банкоматом, то все данные шифруются открытым ключом, а расшифровать их может только банк с соотвествующим секретным ключом. Суть в том, что математически очень трудно найти делители очень большого числа. Вот относительно простой пример. Недавно RSA выделила 1000 долларов США в качестве приза тому, кто найдет два пятидесятизначных делителя числа

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

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

😎 Рубрика «Технологии» выходит при поддержке re:Store.

Почему так происходит? Как работает шифрование и в чем его особенности? Давайте разберемся вместе.

История, которой уже 4 тыс. лет

Само по себе понятие «шифрование» впервые появилось еще около 4 тыс. лет назад. Простейшим способом шифрования пользовались еще с 3-го тысячелетия до н.э.

При написании письма, буквы менялись местами. Скажем, «А» соответствовала букве «Т», «Б» менялась на «У», «В» на «Ф» и так далее.

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

Забавно, но именно такой примитивный метод по сути являлся первым ключом шифрования.

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

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


Криптографический цилиндр Томаса Джеферсона

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


Печатная машинка с механическим алгоритмом шифрования.

В первой половине XX века стали использовать электромеханический метод шифрования при помощи хитроумных устройств — шифровальщиков. И, наконец, с 70-х годов XX века за шифровку взялись компьютеры.

Какие бывают виды шифрования?

С появлением ЭВМ стали создаваться и более сложные алгоритмы шифрования. Вместо деревянных табличек и механических машин человечество перешло на шифрование посредством двоичного кода.

Так появилось два основных типа шифрования: симметричное и ассиметричное.

При симметричном шифровании используется лишь один пароль или ключ. Работает он следующим образом.

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

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

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

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

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

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

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

Как работает шифрование на примере iMessage?

Пожалуй, именно Apple можно отнести к категории тех компаний, которые максимально беспокоятся о конфиденциальности данных своих пользователей. Шифрование и защита в продуктах Apple находится на высоком уровне.

Понять это можно, разобравшись в принципах работы одного из сервисов — iMessage.

Итак, вы решили использовать iMessage. Зарегистрировали Apple ID, зашли в настройки и включили сервис.

На iOS-девайсе тут же создаются две пары ключей: публичная и приватная. Да-да, iMessage работает по ассиметричному типу шифрования.

Приватная пара остается в памяти устройства, публичная же отправляется на сервера Apple.

Ну что, iMessage включен. Вы открываете приложение «Сообщения», выбираете адресата и начинаете писать сообщение. Тем временем сервис проверяет наличие публичного ключа адресата, который прикреплен к учетной записи Apple ID. Найдя его, абонент подсвечивается доступным для отправки сообщений через сервис.

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

Зашифрованное сообщение поступает на устройство получателя. Оно привязано к публичному ключу отправителя и требует дешифровки. Тем временем на сервере удаляется та самая зашифрованная копия.

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

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

Выходит, что с шифрованием мои сообщения в безопасности?

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

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

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

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

(16 голосов, общий 4.38 из 5)
🤓 Хочешь больше? Подпишись на наш Telegramнаш Telegram. … и не забывай читать наш Facebook и Twitter 🍒 iPhones.ru Рассказываем о процессах, которые мы никогда не увидим.

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

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

ROT13 – еще один распространенный тип шифрования сообщений. В нём каждая буква алфавита сдвигается на 13 позиций, как показано на рисунке:

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

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

Определения и краткое руководство по кибербезопасности

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

Конфиденциальность – данные не могут быть получены или прочитаны неавторизованными пользователями.

Целостность информации – уверенность в том, что информация 100% останется нетронутой и не будет изменена злоумышленником.

Доступность информации – получение доступа к данным, когда это необходимо.

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

Основные способы шифрования:
  • Симметрично
  • Асимметричное
  • Хеширование
  • Цифровая подпись

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

Прежде чем мы начнем разбираться в теме, ответим на простой вопрос: что именно подразумевается под «шифрованием»? Шифрование – преобразование информации в целях сокрытия от неавторизованных лиц, но в то же время с предоставлением авторизованным пользователям доступа к ней.

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

require ‘openssl’ require ‘pry’ data_to_encrypt = ‘now you can read me!’ cipher = OpenSSL::Cipher.new(‘aes256’) cipher.encrypt key = cipher.random_key iv = cipher.random_iv data_to_encrypt = cipher.update(data_to_encrypt) + cipher.final binding.pry true

Вот что выведет программа:

Обратите внимание, что переменная data_to_encrypt, которая изначально была строкой «now you can read me!”, теперь куча непонятных символов. Обратим процесс, используя ключ, который изначально сохранили в переменной key.

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

Давайте рассмотрим и другие способы шифрования.

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

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

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

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

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

Создадим пару открытого и закрытого ключей:

require ‘openssl’ require ‘pry’ data_to_encrypt = ‘now you can read me!’ key = OpenSSL::PKey::RSA.new(2048) binding.pry true

Получится:

Обратите внимание, что приватный ключ и открытый ключ являются отдельными объектами с различными идентификаторами. Используя #private_encrypt, можно зашифровать строку с помощью закрытого ключа, а используя #public_decrypt – расшифровать сообщение:

Хеширование информации

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

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

Создадим новую строку, хешируем её и сохраним результат в переменной:

require ‘openssl’ require ‘pry’ test = ‘some data’ digest = Digest::SHA256.digest(test) binding.pry true

Снова хешируем строку и сравниваем её с той, что сохранили в переменной digest:

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

Чтобы показать, как выглядят разные строки похожих исходных данных, взгляните на это:

Цифровая подпись

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

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

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

Оригинал

В последнее время всякие сервисы для связи — от WhatsApp до Zoom — часто говорят: вот, мы внедрили сквозное шифрование. Вот только далеко не все пользователи понимают, что это значит. Что такое шифрование, допустим, понятно, — значит, данные превращаются во что-то нечитаемое. А сквозное — это как? В чем его плюсы и минусы? Попробуем объяснить максимально просто, не углубляясь в термины и математику.

Что такое сквозное шифрование и какие еще бывают варианты

Сквозное шифрование — это когда сообщения шифруются на вашем устройстве и расшифровываются только на устройстве вашего собеседника (по-английски это называется end-to-end, что можно перевести на русский как «из конца в конец»). То есть весь путь от отправителя до получателя сообщение преодолевает в зашифрованном виде, поэтому его никто не может прочитать, кроме вашего собеседника.

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

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

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

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

От чего защищает сквозное шифрование

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

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

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

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

От чего сквозное шифрование не защищает

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

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

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

По этой же причине устройства надо защищать антивирусами — зловред на смартфоне может точно так же прочитать вашу переписку, как и живой человек, заполучивший доступ к смартфону. И тут уже неважно, какое шифрование было использовано при передаче сообщений.

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

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

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *