для каких целей используется шифрование передаваемых данных
Кодирование и Шифрование
В наш век интернет-технологий, когда мы доверяем все свои данные интернет-сервисам, нужно знать и понимать, как они их хранят и обрабатывают.
Но зачем это вообще нужно знать? Чтобы попросту не попасть в ситуацию, когда ваши личные данные, пароли от аккаунтов или банковских карт окажутся в руках мошенников. Как говорится: «Доверяй, но проверяй»
Важные аспекты в хранении данных, будь то на внешних серверах или домашнем компьютере, – это прежде всего кодирования и шифрование. Но чем они отличаются друг от друга? Давайте разбираться!
Ни для кого не секрет, что компьютер может хранить информацию, но он не может хранить её в привычной для нас форме: мы не сможем просто так написать на флешки реферат, не можем нарисовать на жестком диске картинку так, чтобы её мог распознать компьютер. Для этого информацию нужно преобразовать в язык понятный компьютеру, и именно этот процесс называется кодированием. Когда мы нажимаем на кнопку на клавиатуре мы передаем код символа, который может распознать компьютер, а не сам символ.
Определения и различия
Кодирование – процесс преобразования доступной нам информации в информацию понятную компьютерную.
Шифрование – процесс изменения информации таким образом, чтобы её смогли получить только нужные пользователи.
Шифрование применялось и задолго до создания компьютеров и информатики как таковой. Но зачем? Цели её применения можно было понять из определения, но я опишу их ещё раз более подробно. Главные цели шифрования это:
конфиденциальность – данные скрыты от посторонних
целостность – предотвращение изменения информации
идентифицируемость – возможность определить отправителя данных и невозможность их отправки без отправителя
Оценить стойкость шифра можно с помощью криптографической стойкости.
Криптографическая стойкость – это свойство шифра противостоять криптоанализу, изучению и дешифровки шифра.
Криптостойкость шифра делится на две основные системы: абсолютно стойкие системы и достаточно стойкие системы.
Абсолютно стойкие системы – системы не подверженные криптоанализу. Основные критерии абсолютно стойких систем:
Ключи должны генерироваться для каждого сообщения отдельно
Генерация ключей независима
Длина ключа должна быть не меньше длины сообщения
К сожалению, такие системы не удобны в своём использовании: появляется передача излишней информации, которая требует мощных и сложных устройств. Поэтому на деле применяются достаточно стойкие системы.
Достаточно стойкие системы – системы не могут обеспечить полную защиту данных, но гораздо удобнее абсолютно стойких. Надежность таких систем зависит от возможностей крипто аналитика:
Количества перехваченных сообщений
Времени и вычислительных способностей
А также от вычислительной сложности шифра.
Вычислительная сложность – совокупность времени работы шифрующей функции, объема входных данных и количества используемой памяти. Чем она больше, тем сложнее дешифровать шифр.
История шифрования
Шифрование берет своё начало ещё из древних времен. Примерно 1300 лет до нашей эры был создан один из первых методов шифрования – Атбаш. Принцип шифрования заключается в простой подставке символов по формуле:, где:
n – количество символов в алфавите
i – порядковый номер символа.
С тех самых пор шифрование активно развивалось вместе с развитием нашей цивилизации
Хоть шифры и менялись, но их принцип нет – для расшифровки сообщения требуется ключ. В случае с Абашем ключом может считать последовательность порядковых номеров исходных символов, но этот ключ ещё надо как-то передать. Методы шифрования, которые используются сейчас, научились-таки передавать ключи по открытым и незащищённым каналам связи. Казалось бы, передача ключей шифрования по обычным каналам — это добровольное жертвование своими данными, но не всё так просто. Разберём это на примере популярного алгоритма шифрования «RSA», разработанного в 1977 году.
Первым делом выбирается два случайный простых числа, которые перемножаются друг на друга – именно это и есть открытый ключ.
К слову: Простые числа — это те числа, которые могут делиться без остатка либо на 1, либо на себя.
Длина таких чисел может быть абсолютно любая. К примеру, возьмем два простых числа 223 и 13. Их произведение 2899 – будет являться открытым ключом, который мы и будем передавать по открытому каналу связи. Далее нам необходимо вычислить функцию «Эйлера» для произведения этих чисел.
Функция Эйлера – количество натуральных чисел, меньших чем само число и, которые будут являть взаимно простыми числами с самим числом.
Возможно, звучит непонятно, но давайте это разберем на небольшом примере:
φ (26) [фи от двадцати шести] = какому-то числу чисел, которое всегда будет меньше 26, а сами числа должны иметь только один общий делитель единицу с 26.
1 – подходит всегда, идем дальше;
7 – только на 1 – подходит;
Общее количество таких чисел будет равно 12. А найти это число можно по формуле: φ(n*k) = (n-1)(k-1) в нашем случае 26 можно представить как 2 * 13, тогда получим φ(26) = φ(2 * 13) = (2-1)*(13-1) = 1 * 12 = 12
Теперь, когда мы знаем, что такое функция Эйлера и умеем её вычислять найдем её для нашего открытого ключа – φ(2899) = φ(223 * 13) =(223 – 1)*(13-1) = 222 * 12 = 2664
После чего нам нужно найти открытую экспоненту. Не пугайтесь, тут будет гораздо проще чем с функцией «Эйлера».
Открытая экспонента – это любое простое число, которое не делится на функцию Эйлера. Для примера возьмем 13. 13 не делится нацело на число 2664. Вообще открытую экспоненту лучше выбирать по возрастанию простым перебором, а не просто брать случайную. Так для нашего примера разумнее было бы взять число 5, но давайте рассмотрим на примере 13
e – открытая экспонента
mod – остаток отделения
В обоих случаях у нас получится число 205
На этом подготовка отправки сообщения успешно завершается и начинается самое веселое – отправка данных для дешифрования сообщения. На этом шаге мы отправляем открытый ключ и открытую экспоненту человеку, сообщение которого хотим получить. Предположим, что в этот момент наш ключ и экспоненту перехватили 3-е лица, но до нужного нам человека они всё так же дошли
Теперь этому человеку нужно отправить нам сообщение, для простоты предположим, что это какое-то число, например: 92. Для этого ему нужно отправить нам остаток от деления 92 в степени открытой экспоненты на открытый ключ – T ^ e mod n , где
T – шифруемый текст
e – открытая экспонента
mod – остаток от деления
Предположим, что и в этот раз сообщение перехватили, но нам оно всё так же дошло
С – зашифрованный текст
d – закрытая экспонента
mod – остаток от деления
235 ^ 205 mod 2899 = 92.
Вуаля, и мы имеет исходное число. Но, что насчет перехваченных сообщений? У злоумышленника есть сообщение, ключ и экспонента, но как мы помни для дешифровки ему ещё нужна секретная экспонента, она же секретный ключ, но для того, чтобы вычислить её, ему придется разложить исходный ключ 2899 на множители, а сделать это не так уж и просто, особенно когда вместо двух чисел 223 и 13, будут использовать числа длиной несколько десятков символов
Но ничто в мире не идеально, в том числе и этот метод.
Его первый недостаток – это подборка пары чисел для открытого ключа. Нам нужно не просто сгенерировать случайно число, но ещё и проверить на то простое ли оно. На сегодняшний нет методов, которые позволяют делать это сверх быстро.
Второй недостаток – так же связан с генерацией ключа. Как мы с вами помним: «ключи должны генерировать независимо от каких-либо факторов», но именно это правило нарушается, когда мы пытается сгенерировать строго простые числа.
Третий недостаток – подбор и перебор чисел для экспонент.
Четвертый – длина ключей. Чем больше длина, тем медленнее идет процесс декодирования, поэтому разработчики пытаются использовать наименьшие по длиннее ключи и экспоненты. Даже я акцентировал на это внимание, когда говорил, что лучше взять число 5, вместо 13 для открытой экспоненты. Именно из-за этого и происходит большая часть взломов и утечек данных
Но не стоит печалиться, ведь как я и говорил: криптография и шифрование развивается вместе с развитием цивилизации. Поэтому довольно скоро все мы будем шифровать свои данные с помощью Квантового шифрование.
Этот метод основывается на принципе квантовой суперпозиции – элементарная частица может сразу находится в нескольких положениях, иметь разную энергию или разное направление вращения одновременно. По такому принципу и работает передача ключей шифрования по протоколу BB-84.
Есть оптоволокно, по которому передаются единичные фотоны света. Мы, как отправитель может сгенерировать абсолютно любой двоичный ключ, по тому же принципу квантовой супер позиции, ну или использовать обычные генераторы псевдослучайных чисел. Допустим мы хотим передать ключ 101001011. Для этого нам нужно принять за обозначение какое положение фотона соответствует единице, а какое нулю. Представим, что вертикальное положение – это 1, а горизонтальное – 0. Если оставить все так, то от передачи ключей таким образом не будет никакого смысла, ведь тогда злоумышленник всегда сможет измерить фотон, получить его значение, создать и отправить точно такой же обратно человеку, которому мы хоти передать ключ. Поэтому были введены ещё два положение – диагональные. Предоставим вертикальную волну, или же значение 1 и отклоним её на 45 градусов влево. Это будет вторая единица. Вернемся обратно и отклоним на 45 градусов вправо – это будет второй 0.
Вернемся к нашему ключу 101001011. Мы случайным образом выбираем направление – обычное или диагональное. Для удобства присвоим обычному номер 1, а диагональному 2.
Давайте отправим ключ – 1(1), 0(2), 1(1), 0(1), 0(1), 1(2), 0(2), 1(1), 1(2). Теперь человеку, которому мы отправляем ключ, нужно точно так же, совершенно случайно, выбрать случайное направление.
Допустим он выбрал направления: 221111212. Поскольку есть всего 2 плоскости отправки: 1 и 2, они же называются: канонический и диагональный базис, то шанс того, что он выбрал правильные направления 50%.
Если он угадал базис – он получил верное значение, если нет – неверное. Учитывая его направления, он получил: 001000011. Теперь нужно отсеять неправильные значения: можно сделать это обменом базисов по любому, даже не защищенному, каналу связи. После этого у нас обоих останется ключ: 0100011. Теперь с помощью его мы можем передавать и кодировать сообщения по обычному методу шифрования.
Заключение
Причитав и разобрав эту статью, мы с вами узнали, чем отличается кодирование от шифрования, их историю с будущим, узнали каким должен быть идеальный шифр и немного поговорили про крипто анализ. Уже с этими знаниями, которые были предоставлены в этой статье, можно спокойно идти и делать какую-нибудь систему авторизации или пытаться взломать какой-то сайт, главное не перебарщивать.
Сквозное шифрование: что это и зачем оно нужно вам
Объясняем на пальцах, что такое сквозное шифрование и зачем оно нужно обычным людям.
В последнее время всякие сервисы для связи — от WhatsApp до Zoom — часто говорят: вот, мы внедрили сквозное шифрование. Вот только далеко не все пользователи понимают, что это значит. Что такое шифрование, допустим, понятно, — значит, данные превращаются во что-то нечитаемое. А сквозное — это как? В чем его плюсы и минусы? Попробуем объяснить максимально просто, не углубляясь в термины и математику.
Что такое сквозное шифрование и какие еще бывают варианты
Сквозное шифрование — это когда сообщения шифруются на вашем устройстве и расшифровываются только на устройстве вашего собеседника (по-английски это называется end-to-end, что можно перевести на русский как «из конца в конец»). То есть весь путь от отправителя до получателя сообщение преодолевает в зашифрованном виде, поэтому его никто не может прочитать, кроме вашего собеседника.
Как еще бывает? Также возможна передача данных в открытом виде, то есть когда сообщение вообще не шифруется. Это самый небезопасный вариант. Например, данные не шифруются при передаче SMS — в теории их может перехватывать вообще кто угодно. К счастью, на практике для этого требуется специальное оборудование, что несколько ограничивает круг читателей ваших сообщений.
Еще бывает транспортное шифрование — это когда сообщения шифруются у отправителя, доставляются на сервер, расшифровываются там, вновь шифруются и доставляются уже получателю. Транспортное шифрование защищает информацию при передаче, однако позволяет видеть содержание сообщений промежуточному звену — серверу. Может быть, этот сервер ответственно относится к вашим тайнам, а может быть, и нет. Вам остается только доверять его владельцам.
В то же время во многих случаях может быть гораздо удобнее использовать транспортное шифрование вместо сквозного. Дело в том, что транспортное шифрование позволяет серверу предоставлять более разнообразные услуги, нежели просто передача зашифрованных данных от одного собеседника к другому. Например, хранить историю переписки, подключать к беседе дополнительных участников по альтернативным каналам (телефонный звонок в видеоконференцию), использовать автоматическую модерацию и так далее.
При этом транспортное шифрование решает важную задачу: исключает перехват данных по дороге от пользователя к серверу и от сервера к пользователю (а это самая опасная часть пути). Так что сервисы не всегда торопятся переходить на сквозное шифрование: для пользователей удобство и разнообразие сервисов может быть важнее повышенной безопасности данных.
От чего защищает сквозное шифрование
Из того, что зашифрованное сквозным шифрованием сообщение не может расшифровать никто, кроме получателя, вытекает еще один плюс: никто не может влезть в сообщение и изменить его. Современные шифры устроены таким образом, что, если кто-то изменит зашифрованные данные, при расшифровке они превратятся в мусор, — и сразу станет понятно, что тут что-то не так. А вот внести предсказуемые изменения в зашифрованное сообщение — то есть подменить один текст другим — не получится.
Это обеспечивает целостность переписки: если вы получили сообщение и его удается расшифровать, то вы можете быть точно уверены, что именно это сообщение вам и отправили и в пути оно никак не изменилось.
От чего сквозное шифрование не защищает
После того как кто-нибудь расписывает все преимущества сквозного шифрования — примерно так, как это сделали мы сейчас, — слушателям начинает казаться, что оно решает вообще все проблемы передачи информации. Однако это не так, и у сквозного шифрования есть свои ограничения.
Во-первых, пусть использование сквозного шифрования и позволяет скрыть от посторонних глаз содержание сообщения, сам факт отправки определенному собеседнику (или получения от него) сообщения все еще остается известным. Сервер не будет знать, что было в том сообщении, которое вы отправили своему собеседнику, но он точно будет в курсе того, что в такой-то день и в такое-то время вы обменивались сообщениями. В некоторых случаях сам факт общения с определенными адресатами может привлечь к вам нежелательное внимание.
Во-вторых, если кто-то получит доступ к устройству, с помощью которого вы общаетесь, то он сможет прочитать все сообщения. А также сможет писать и посылать сообщения от вашего имени. Поэтому устройства надо беречь, а также блокировать доступ к приложениям, использующим сквозное шифрование, хотя бы PIN-кодом, чтобы при потере или краже устройства ваша переписка не попала в чужие руки — вместе с возможностью притворяться вами.
По этой же причине устройства надо защищать антивирусами — зловред на смартфоне может точно так же прочитать вашу переписку, как и живой человек, заполучивший доступ к смартфону. И тут уже неважно, какое шифрование было использовано при передаче сообщений.
Наконец, в-третьих: даже если вы безукоризненно заботитесь о защите всех ваших устройств и точно знаете, что к сообщениям на них ни у кого нет доступа, вы вряд ли можете быть так же уверены в устройстве вашего собеседника. И сквозное шифрование тут тоже никак не поможет.
И все же, несмотря на ограничения, сквозное шифрование — наиболее безопасный способ передачи конфиденциальных данных, и именно поэтому на него переходит все больше различных сервисов. И это хорошо.
Современное шифрование изнутри: каким образом происходит, где используется, насколько безопасно
«Шифрование» — термин, с которым сталкивались многие пользователи, однако далеко не каждый из них знает, что же означает это слово на самом деле. Если вкратце, шифрование — это кодирование информации. Этот процесс используется в различных онлайн-сервисах для обеспечения конфиденциальности и безопасности данных: от текстовых сообщений и электронных писем до банковских реквизитов и облачных файлов. Шифрование различается по типам и принципам работы.
Введение в шифрование
Шифрование — это не изобретение цифровой эпохи. Любители истории знают, что криптография возникла ещё в Древнем Египте. В те времена секретные сообщения зашифровывались с помощью перестановки символов. Знаменитый шифр Цезаря, например, заменял одну букву на другую, смещённую на некоторое фиксированное количество позиций в алфавите. Сегодня основной принцип остаётся прежним. Цифровое шифрование принимает читаемый (открытый) текст и кодирует его. Однако теперь используются алгоритмы шифрования, которые намного сложнее и мощнее, чем их предок с одноалфавитной подстановкой.
Усовершенствовать процесс шифрования помогли переменные, также известные как ключи. Они генерируются случайным образом и являются уникальными. Некоторые системы даже создают новые ключи для каждого сеанса, что дополнительно защищает персональные данные пользователей. Например, если злоумышленник захочет украсть информацию о кредитной карте, то ему нужно будет выяснить не только, какой алгоритм использовался для шифрования данных, но ещё и какой ключ был сформирован. Это — далеко не простая задача, так как шифрование устойчиво к подобным атакам. Вот почему этот процесс — один из лучших способов защитить конфиденциальные данные в интернете.
Типы шифрования
Различаются симметричный и ассиметричный типы шифрования. Они отличаются числом ключей, которые используются для данного процесса.
Симметричный. Это — алгоритм, при котором для шифрования и дешифрования используется один и тот же ключ. При этом важно учесть, что ключ должен быть установлен на обоих устройствах до начала обмена данными.
Асимметричный. Такое шифрование предпочитает двухключевой подход. Открытый ключ используется для шифрования, а закрытый — для дешифрования. При этом стоит отметить, что последний доступен только личному устройству пользователя, а потому не стоит переживать по поводу сохранности первого — никто не сможет получить доступ к личной информации без закрытого ключа.
Алгоритмы шифрования
AES (Advanced Encryption Standard). Один из самых безопасных алгоритмов симметричного шифрования, который существует сегодня. Он использует шифр размером блока 128 бит и длиной ключа 128, 192 и 256 бит. Алгоритм AES используют многие организации, включая правительство США.
Triple DES. Ещё один симметричный алгоритм шифрования. Когда исходный стандарт шифрования данных DES стал уязвим для атак, его заменили на Triple DES, название которого происходит от использования трёх 56-битных ключей. Однако в последние годы этот алгоритм вышел из моды, так как появились более безопасные варианты, такие как AES.
Blowfish. Очередной симметричный алгоритм шифрования, который был изобретён экспертом по безопасности Брюсом Шнайером (Bruce Schneier). Как и Triple DES, он появился на замену устаревшему DES. Это — блочный шифр с симметричным ключом, который входит в число самых безопасных алгоритмов. Более того, он является общественным достоянием и может свободно использоваться кем угодно.
Twofish. Симметричный алгоритм шифрования, который использует ключи длиной до 256 бит. Данное изобретение также было создано Брюсом Шнайером. По сути, Twofish — это продвинутый вариант Blowfish. Он не только быстрый и безопасный, но ещё и находится в открытом доступе, как и его предшественник.
RSA. Алгоритм асимметричного шифрования, который является одним из старейших и наиболее широко используемых стандартов для шифрования данных в интернете. Этот алгоритм не отличается скоростью, но считается очень безопасным.
Сферы применения шифрования
E2EE. Так называют сквозное шифрование. Этот способ передачи данных гарантирует, что доступ к исходному тексту сообщения имеется только у отправителя и получателя. То есть, даже интернет-провайдеры или другие поставщики услуг не смогут расшифровать пользовательскую информацию. E2EE идеально подходит для тех, кто заботится о конфиденциальности и безопасности. Говорить о полной безопасности при использовании сквозного шифрования нельзя, но её уровень достаточно велик.
Ряд популярных служб обмена сообщениями и клиентов электронной почты, таких как Signal, WhatsApp и Proton Mail, используют E2EE.
HTTPS. Протокол защищённой передачи данных. Он используется в интернете и часто обозначается замком в углу адресной строки браузера. Этот протокол обеспечивает безопасную связь с помощью шифрования TLS (Transport Layer Security) или SSL (Secure Sockets Layer).
HTTPS аутентифицирует соединение, запрашивая сертификат цифрового или открытого ключа, который должен быть подписан доверенным третьим лицом. Однако, в отличие от сквозного шифрования, этот протокол обычно защищает личную информацию во время её передачи. Это означает, что HTTPS — менее конфиденциальный, но он по-прежнему обязателен для всех, кто хочет защитить свои онлайн-данные.
Чтобы убедиться, что все сайты, которые вы посещаете, используют HTTPS, нужно установить расширение HTTPS Everywhere. Оно доступно для всех основных браузеров, таких как Chrome, Firefox, Opera и даже Firefox для Android.
Облачное шифрование. Облачное хранилище — одно из самых распространённых мест для хранения фотографий, видеоматериалов и документов. А потому эта служба нуждается в шифровании для защиты конфиденциальных файлов. Многие поставщики облачных хранилищ предлагают ту или иную его форму.
В данном случае выделяют три типа данных: в состоянии покоя, в пути и в использовании. Названия этих форм говорят сами за себя. То есть, первый тип — это информация, которая хранится и в настоящее время не используются. Второй тип — это информация в движении, которая активно передаётся из одного места в другое. Третий тип — информация, обрабатываемая в данный момент.
Однако будет ли зашифрована эта информация или нет, зависит только от облачного сервиса, который используется. Некоторые из них предлагают шифрование как данных в состоянии покоя, так и данных в пути. Остальные — кодируют только ту информацию, которую считают конфиденциальной. К сожалению, немногие облачные сервисы предлагают сквозное шифрование.
Тем не менее популярные службы предоставляют шифрование TSL/SSL для передаваемых данных и некоторую форму шифрования для данных в состоянии покоя. Dropbox, например, предлагает Boxcryptor — инструмент для сквозного шифрования, который может локально преобразить файлы, прежде чем они будут загружены в облако.
Шифрование диска. Инструмент защиты данных, который шифрует содержимое жёсткого диска. Новый уровень безопасности.
Есть несколько способов шифрования диска: с помощью программного или аппаратного обеспечения. В последнем случае используется диск с самошифрованием. Он автоматически шифрует и дешифрует данные, что делает его одним из самых простых способов обезопасить личные файлы. К тому же на рынке представлен большой ассортимент самошифруемых дисков. Единственный минус — высокая стоимость.
Шифрование диска с помощью программного обеспечения — более доступный способ. Этот процесс происходит в режиме реального времени — на лету. Это означает, что данные шифруются и дешифруются по мере загрузки и сохранения. Этот способ может привести к снижению производительности, но он просто необходим для тех, кто ставит безопасность на первое место. Программное обеспечение, такое как BitLocker, например, использует алгоритм шифрования AES со 128- или 256-битными ключами, что делает его идеальным инструментом для защиты конфиденциальной информации.
Почему шифрование настолько важно
Конфиденциальность. Шифрование является важным инструментом для тех, кто хочет сохранить личные данные только для себя и предполагаемых получателей. Ведь некоторые разговоры, фотографии, видеофайлы и документы лучше скрывать от посторонних глаз.
Безопасность. В период пандемии многие пользователи были вынуждены вводить конфиденциальную информацию в удалённом режиме. Речь про подачу налоговых документов или же покупки в онлайн-магазинах. Шифрование убережёт данные кредитной карты или личную информацию от кражи.
Конечно, шифрование не может защитить на 100%. У него есть недостатки и ограничения. Но без него пользователи гораздо больше подвержены слежке и сбору данных.
Вопросы и ответы
Насколько безопасно шифрование?
Шифрование делает работу в сети более приватной и безопасной, однако оно не обеспечивает максимальную защиту. Уровень безопасности зависит от типа используемого шифрования, но даже в самых продвинутых системах есть недостатки. Шифрование не может уберечь пользователей от всех онлайн-угроз, ведь к краже личных данных могут привести даже слабые пароли и утечка информации.
Можно ли взломать зашифрованные данные?
Да, декодирование зашифрованных данных возможно. Однако расшифровка требует много времени и ресурсов. Зашифрованные данные обычно взламывают с помощью украденных ключей.
Можно ли снова зашифровать зашифрованные данные?
Да, существует множественное шифрование. Для этого можно использовать одинаковые или разные алгоритмы. Однако этот способ не очень распространён, так как большинство современных шифров и так очень трудно взломать.
Какой самый высокий уровень шифрования?
256-битный AES считается самым надёжным стандартом шифрования. С 2001 года его использует правительство США и многие американские компании.
Какие приложения для обмена сообщениями используют сквозное шифрование?
Signal, WhatsApp и iMessage по умолчанию используют сквозное шифрование. Другие популярные сервисы для общения, такие как Telegram, также предлагают этот тип шифрования, но только в секретных чатах.
Статья написана на основе материала Android Authority.