Разное

Шифрование в информатике: Криптография и главные способы шифрования информации

Содержание

Криптография и главные способы шифрования информации

В 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:

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

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

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

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

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

Оригинал

Введение в криптографию и шифрование, часть первая. Лекция в Яндексе

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

Мы впервые публикуем эту лекцию вместе с расшифровкой. Начнём с первой части. Под катом вы найдёте текст и часть слайдов.


Я когда-то читал в МГУ лекции по крипте, и они занимали у меня по полгода. Я попытаюсь вам всё рассказать за два с половиной часа. Никогда этого не делал. Вот и попробуем.

Кто понимает, что такое DES? AES? TLS? Биноминальное отображение?

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

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

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

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

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

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

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

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

Первый криптографический примитив — симметричные шифры.


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


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


Исторически, в условном IV веке до нашей эры, существовало два метода дизайна шифров: шифры подстановки и перестановки. Шифры подстановки — алгоритм, где в те времена заменяли одну букву сообщения на другую по какому-то принципу. Простой шифр подстановки — по таблице: берем таблицу, где написано, что А меняем на Я, Б на Ю и т. д. Дальше по этой таблице шифруем, по ней же дешифруем.

Как вы считаете, с точки зрения размера ключа насколько это сложный алгоритм? Сколько вариантов ключей существует? Порядок факториала длины алфавита. Мы берем таблицу. Как мы ее строим? Допустим, есть таблица на 26 символов. Букву А можем заменить на любой из них, букву Б — на любой из оставшихся 25, С — на любой из оставшихся 24… Получаем 26*25*24*… — то есть факториал от 26. Факториал размерности алфавита.

Если взять log226!, это будет очень много. Думаю, вы точно получите в районе 100 бит длины ключа, а то и поболее. Оказалось, что с точки зрения формального представления стойкости указанный алгоритм шифрования — довольно неплохой. 100 бит — приемлемо. При этом все, наверное, в детстве или юности, когда сталкивались с кодировками, видели, что такие алгоритмы дешифруются тривиально. Проблем с расшифровкой нет.

Долго существовали всякие алгоритмы подстановки в разных конструкциях. Одним из них, еще более примитивным, является шифр Цезаря, где таблица формируется не случайной перестановкой символов, а сдвигом на три символа: А меняется на D, B на Е и т. д. Понятно, что шифр Цезаря вместе со всеми его вариантами перебрать очень легко: в отличие от табличной подстановки, в ключе Цезаря всего 25 вариантов при 26 буквах в алфавите — не считая тривиального шифрования самого в себя. И его как раз можно перебрать полным перебором. Здесь есть некоторая сложность.

Почему шифр табличной подстановки такой простой? Откуда возникает проблема, при которой мы можем легко, даже не зная ничего про криптографию, расшифровать табличную подстановку? Дело в частотном анализе. Есть самые распространенные буквы — какая-нибудь И или Е. Их распространенность велика, гласные встречаются намного чаще, чем согласные, и существуют негативные пары, никогда не встречающиеся в естественных языках, — что-то вроде ЬЪ. Я даже давал студентам задание сделать автоматический дешифратор шифра подстановки, и, в принципе, многие справлялись.

В чем проблема? Надо статистику распределения букв исказить, чтобы распространенные буквы не так светились в зашифрованном тексте. Очевидный способ: давайте будем шифровать самые часто встречающиеся буквы не в один символ, а в пять разных, например. Если буква встречается в среднем в пять раз чаще, то давайте по очереди — сначала в первый символ будем зашифровывать, потом во второй, в третий и т. д. Далее у нас получится маппинг букв не 1 к 1, а, условно, 26 к 50. Статистика, таким образом, нарушится. Перед нами первый пример полиалфавитного шифра, который как-то работал. Однако с ним есть довольно много проблем, а главное, очень неудобно работать с таблицей.

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

Берем в качестве ключа слово ВАСЯ. Берем сообщение МАША. Задействуем шифр Цезаря, но отсчитывая от этих букв. Например, В — третья буква в алфавите. Мы должны сдвинуть на три буквы соответствующую букву в открытом тексте. М сдвигается в П. А в А. Ш — на 16, перескочим букву А, получим, условно, Д. Я сдвинет А в Я. ПАДЯ.

Что удобно в получившемся шифре? Здесь было две одинаковых буквы, но в результате они зашифровались в разные. Это классно, потому что размывает статистику. Метод хорошо работал, пока где-то в XIX веке, буквально недавно на фоне истории криптографии, не придумали, как его ломать. Если посмотреть на сообщение из нескольких десятков слов, а ключ довольно короткий, то вся конструкция выглядит как несколько шифров Цезаря. Мы говорим: окей, давайте каждую четвертую букву — первую, пятую, девятую — рассматривать как шифр Цезаря. И поищем среди них статистические закономерности. Мы обязательно их найдем. Потом возьмем вторую, шестую, десятую и так далее. Опять найдем. Тем самым мы восстановим ключ. Единственная проблема — понять, какой он длины. Это не очень сложно, ну какой он может быть длины? Ну 4, ну 10 символов. Перебрать 6 вариантов от 4 до 10 не очень сложно. Простая атака — она была доступна и без компьютеров, просто за счет ручки и листа бумаги.

Как из этой штуки сделать невзламываемый шифр? Взять ключ размера текста. Персонаж по имени Клод Шэннон в ХХ веке, в 1946 году, написал классическую первую работу по криптографии как по разделу математики, где сформулировал теорему. Длина ключа равна длине сообщения — он использовал XOR вместо сложения по модулю, равному длине алфавита, но в данной ситуации это не очень принципиально. Ключ сгенерирован случайным образом, является последовательностью случайных бит, и на выходе тоже получится случайная последовательность бит. Теорема: если у нас есть такой ключ, то подобная конструкция является абсолютно стойкой. Доказательство не очень сложное, но сейчас не буду про него говорить.

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

Возьмем два сообщения: МАША, зашифрованная ключом ВАСЯ, и другое слово, у которого ключ тоже был ВАСЯ, — ВЕРА. Получим примерно следующее: ЗЕШЯ. Сложим два полученных сообщения, причем так, чтобы два ключа взаимно удалились. В итоге получим лишь разницу между осмысленным шифротекстом и осмысленным шифротекстом. На XOR это делается удобнее, чем на сложении по длине алфавита, но разницы практически никакой.

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

Помимо шифров подстановки, были еще шифры перестановки. С ними тоже все довольно просто. Берем сообщение ВАСЯИ, записываем его в блок какой-то длины, например в ДИДОМ, и считываем результат так же.

Не бог весть какая штука. Как ее ломать, тоже понятно — переберем все возможные варианты перестановок. Тут их не очень много. Берем длину блока, подбираем и восстанавливаем.

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

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


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

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

Из этой истории есть одно занятное исключение — шифроблокноты. Речь идет о настоящей шпионской истории про настоящий шпионаж. Некие люди, которым нужна абсолютно устойчивая коммуникация, генерируют случайные числа — например, буквальным бросанием кубика или буквальным выниманием шаров из барабана, как в лото. Создают два листа, где печатают эти случайные числа. Один лист отдают получателю, а второй оставляют у отправителя. При желании пообщаться они используют этот поток случайных чисел в качестве ключевого потока. Нет, история взята не из совсем далекого прошлого. У меня есть настоящий радиоперехват от 15 октября 2014 года: 7 2 6, 7 2 6, 7 2 6. Это позывной. 4 8 3, 4 8 3, 4 8 3. Это номер шифроблокнота. 5 0, 5 0, 5 0. Это количество слов. 8 4 4 7 9 8 4 4 7 9 2 0 5 1 4 2 0 5 1 4 и т. д. 50 таких числовых групп. Не знаю где, где-то не в России сидел какой-нибудь человек с ручкой и карандашом у обычного радиоприемника и записывал эти цифры. Записав их, он достал похожую штуку, сложил их по модулю 10 и получил свое сообщение. Другими словами, это реально работает, и подобное сообщение нельзя взломать. Если действительно были сгенерированы хорошие случайные числа и он впоследстии сжег бумажку с ключом, то осуществить взлом нельзя никак, совсем.

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

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


Самый исторически распространенный алгоритм подобного рода называется RC4. Он был разработан Роном Ривестом лет 25 назад и активно использовался очень долго, был самым распространенным алгоритмом для TLS, всех его различных вариантов, включая HTTPS. Но в последнее время RC4 начал показывать свой возраст. Для него существует некоторое количество атак. Он активно используется в WEP. Была одна хорошая лекция Антона, история, которая показывает: плохое применение пристойного даже по нынешним меркам алгоритма шифрования приводит к тому, что компрометируется вся система.

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

Большое достоинство RC4 — в том, что он целиком внутрибайтовый, а значит, его программная реализация работает довольно быстро — сильно быстрее, в разы, если не в десятки раз быстрее, чем сравнимый и существовавший примерно в одно время с ним шифр DES. Поэтому RC4 и получил такое распространение. Он долго был коммерческим секретом компании RSA, но потом, где-то в районе 90-х годов, некие люди анонимно опубликовали исходники его устройства в списке рассылки cypherpunks. В результате возникло много драмы, были крики, мол, как же так, какие-то неприличные люди украли интеллектуальную собственность компании RSA и опубликовали ее. RSA начала грозить всем патентами, всевозможными юридическими преследованиями. Чтобы их избежать, все реализации алгоритма, которые находятся в опенсорсе, называются не RC4, а ARC4 или ARCFOUR. А — alleged. Речь идет о шифре, который на всех тестовых кейсах совпадает с RC4, но технически вроде как им не является.

Если вы конфигурируете какой-нибудь SSH или OpenSSL, вы в нем не найдете упоминания RC4, а найдете ARC4 или что-то подобное. Несложная конструкция, он уже старенький, на него сейчас есть атаки, и он не очень рекомендуется к использованию.


Было несколько попыток его заменить. Наверное, на мой предвзятый взгляд самым успешным стал шифр Salsa20 и несколько его последователей от широко известного в узких кругах персонажа Дэна Берштайна. Линуксоидам он обычно известен как автор qmail.

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

Salsa20 устроен так, чтобы он всегда выполнялся за константное одинаковое время. Внутри он состоит всего из трех примитивов: это сдвиг на константное время, а также сложение по модулю 2 и по модулю 32, 32-битных слов. Скорость Salsa20 еще выше, чем у RC4. Он пока что не получил такого широкого распространения в общепринятой криптографии — у нас нет cipher suite для TLS, использующих Salsa20, — но все равно потихоньку становится мейнстримом. Указанный шифр стал одним из победителей конкурса eSTREAM по выбору лучшего поточного шифра. Их там было четыре, и Salsa — один из них. Он потихоньку начинает появляться во всяких опенсорс-продуктах. Возможно, скоро — может, через пару лет — появятся даже cipher suite в TLS с Salsa20. Мне он очень нравится.

На него имеется некоторое количество криптоанализа, есть даже атаки. Снаружи он выглядит как поточный, генерируя на основе ключа последовательность почти произвольной длины, 264. Зато внутри он работает как блочный. В алгоритме есть место, куда можно подставить номер блока, и он выдаст указанный блок.

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

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

В Salsa указанная проблема решена, поскольку в нем на вход поступает в том числе и номер блока, который надо сгенерировать. Дальше к номеру блока 20 раз применяется алгоритм. 20 раундов — и мы получаем 512 бит выходного потока.

Самая успешная атака — в 8 раундов. Сам он 256-битный, а сложность атаки в 8 раундов — 250 или 251 бит. Считается, что он очень устойчивый, хороший. Публичный криптоанализ на него есть. Несмотря на всю одиозность личности Берштайна в этом аспекте, мне кажется, что штука хорошая и у нее большее будущее.

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

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

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

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

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

Размер блока в современных шифрах — как правило, 128 бит. Бывают разные вариации, но как правило, речь идет про 128 или 256 бит, не больше и не меньше. Размер ключа — точно такой же, как для поточных алгоритмов: 128 или 256 бит в современных реализациях, от и до.

Из всех широко распространенных блочных шифров сейчас можно назвать два — DES и AES. DES очень старый шифр, ровесник RC4. У DES сейчас размер блока — 64 бита, а размер ключа — 56 бит. Создан он был в компании IBM под именем Люцифер. Когда в IBM его дизайном занимался Хорст Фейстель, они предложили выбрать 128 бит в качестве размера блока. А размер ключа был изменяемый, от 124 до 192 бит.

Когда DES начал проходит стандартизацию, его подали на проверку в том числе и в АНБ. Оттуда он вернулся с уменьшенным до 64 бит размером блока и уменьшенным до 56 бит размером ключа.


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

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

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


У нее есть несколько интересных достоинств. Первое важное достоинство: функция F может быть любой. Она не должна обладать свойствами обратимости, она может и не быть линейной или нелинейной. Все равно шифр остается симметричным.

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

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

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

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

Потом мы его ксорим с раундовым ключом, размер которого — тоже 48 бит, и получаем 48-битное значение.

Затем оно попадает в набор функций, которые называются S-боксы и преобразуют каждый бит входа в четыре бита выхода. Следовательно, на выходе мы из 48 бит снова получаем 32 бита.

И наконец, окончательная перестановка P. Она опять перемешивает 32 бита между собой. Все очень несложно, раундовая функция максимально простая.

Самое интересное ее свойство заключается в указанных S-боксах: задумано очень сложное превращение 6 бит в 4. Если посмотреть на всю конструкцию, видно, что она состоит из XOR и пары перестановок. Если бы S-боксы были простыми, весь DES фактически представлял бы собой некоторый набор линейных преобразований. Его можно было бы представить как матрицу, на которую мы умножаем наш открытый текст, получая шифротекст. И тогда атака на DES была бы тривиальной: требовалось бы просто подобрать матрицу.

Вся нелинейность сосредоточена в S-боксах, подобранных специальным образом. Существуют разные анекдоты о том, как именно они подбирались. В частности, примерно через 10 лет после того, как DES был опубликован и стандартизован, криптографы нашли новый тип атак — дифференциальный криптоанализ. Суть атаки очень простая: мы делаем мелкие изменения в открытом тексте — меняя, к примеру, значение одного бита с 0 на 1 — и смотрим, что происходит с шифротекстом. Выяснилось, что в идеальном шифре изменение одного бита с 0 на 1 должно приводить к изменению ровно половины бит шифротекста. Выяснилось, что DES, хоть он и был сделан перед тем, как открыли дифференциальный криптоанализ, оказался устойчивым к этому типу атак. В итоге в свое время возникла очередная волна паранойи: мол, АНБ еще за 10 лет до открытых криптографов знало про существование дифференциального криптоанализа, и вы представляете себе, что оно может знать сейчас.

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

56 бит сейчас уже можно просто перебрать на кластере машин общего назначения — может, даже на одном. И это плохо. Что можно предпринять?

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

Допустим, мы берем и шифруем два раза. Для начала нужно доказать, что для шифрований k1 и k2 на двух разных ключах не существует такого шифрования на ключе k3, что выполнение двух указанных функций окажется одинаковым. Здесь вступает в силу свойство, что DES не является группой. Тому существует доказательство, пусть и не очень тривиальное.

Окей, 56 бит. Давайте возьмем два — k1 и k2. 56 + 56 = 112 бит. 112 бит даже по нынешним меркам — вполне приемлемая длина ключа. Можно считать нормальным всё, что превышает 100 бит. Так почему нельзя использовать два шифрования, 112 бит?

Одно шифрование DES состоит из 16 раундов. Сеть применяется 16 раз. Изменения слева направо происходят 16 раз. И он — не группа. Есть доказательство того, что не существует такого ключа k3, которым мы могли бы расшифровать текст, последовательно зашифрованный выбранными нами ключами k1 и k2.

Есть атака. Давайте зашифруем все возможные тексты на каком-нибудь ключе, возьмем шифротекст и попытаемся его расшифровать на всех произвольных ключах. И здесь, и здесь получим 256 вариантов. И где-то они сойдутся. То есть за два раза по 256 вариантов — плюс память для хранения всех расшифровок — мы найдем такую комбинацию k1 и k2, при которых атака окажется осуществимой.

Эффективная стойкость алгоритма — не 112 бит, а 57, если у нас достаточно памяти. Нужно довольно много памяти, но тем не менее. Поэтому решили — так работать нельзя, давайте будем шифровать три раза: k1, k2, k3. Конструкция называется Triple DES. Технически она может быть устроена по-разному. Поскольку в DES шифрование и дешифрование — одно и то же, реальные алгоритмы иногда выглядят так: зашифровать, расшифровать и снова расшифровать — чтобы выполнять операции в аппаратных реализациях было проще.

Наша обратная реализация Triple DES превратится в аппаратную реализацию DES. Это может быть очень удобно в разных ситуациях для задачи обратной совместимости.

Где применялся DES? Вообще везде. Его до сих пор иногда можно пронаблюдать для TLS, существуют cipher suite для TLS, использующие Triple DES и DES. Но там он активно отмирает, поскольку речь идет про софт. Софт легко апдейтится.

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

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

DES расшифровывается как digital encrypted standard. AES — advanced encrypted standard. Размер блока в AES — 128 бит, а не 64. Это важно с точки зрения криптографии. Размер ключа у AES — 128, 192 или 256 бит. В AES не используется сеть Фейстеля, но он тоже многораундовый, в нем тоже несколько раз повторяются относительно примитивные операции. Для 128 бит используется 10 раундов, для 256 — 14.

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

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

Каждый раунд состоит из четырех довольно простых операций. Первый раунд — подстановка по специальной таблице.

В AES мы строим байтовую матрицу размером 4 на 4. Каждый элемент матрицы — байт. Всего получается 16 байт или 128 бит. Они и составляют блок AES целиком.

Вторая операция — побайтовый сдвиг.

Устроен он несложно, примитивно. Мы берем матрицу 4 на 4. Первый ряд остается без изменений, второй ряд сдвигается на 1 байт влево, третий — на 2 байта, четвертый — на 3, циклично.

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

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

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

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

Мы повторяем 4 описанных шага 10 раз, и на выходе из 128-битного блока снова получаем 128-битный блок.

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

Производители современных процессоров, Intel и AMD, уже разработали ассемблерные инструкции для реализации AES внутри чипа, потому что стандарт довольно несложный. Как итог — AES еще быстрее. Если через DES на современной машинке мы можем зашифровать, например, 1-2 гигабита, то 10-гигабитный AES-шифратор находится рядом и коммерчески доступен обычным компаниям.

Блочный алгоритм шифрует блок в блок. Он берет блок на 128 или 64 бита и превращает его в блок на 128 или 64 бита.

А что мы будем делать, если потребуется больше, чем 16 байт?

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

Да, очевидно, побьем всё на блоки по 16 байт и зашифруем. Такое шифрование называется ECB — electronic code boot, когда каждый из блоков по 16 байт в случае AES или по 8 байт в случае DES шифруется независимо.


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


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

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


Мы не только берем ключ и открытый текст, но и генерируем случайное число, которое не является секретным. Оно размером с блок. Называется оно инициализационным вектором.

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

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

Однако у CBC есть несколько проблем.

О размере блока. Представьте: мы начали шифровать и, допустим, у нас DES. Если бы DES был идеальным алгоритмом шифрования, выход DES выглядел бы как равномерно распределенные случайные числа длиной 64 бита. Какова вероятность, что в выборке из равномерно распределенных случайных чисел длиной 64 бита два числа совпадут для одной операции? 1/(264). А если мы сравниваем три числа? Давайте пока прервемся.

Реферат по информатике на тему «Шифрование информации»

РЕФЕРАТ

Шифрование информации

По дисциплине: Информатика

Выполнила:

Канарейкин А.И.

СОДЕРЖАНИЕ

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

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

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

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

Задачи исследования :

  1. Изучение истории появления шифрования информации.

  2. Создать алгоритм шифрования на языке программирования.

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

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

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

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

Самым известным криптографом XVI века можно назвать Блеза де Виженера. В его шифре использовалось многократное применение метода сдвига (шифр сдвига — один из самых простых и наиболее широко известных методов шифрования) с различными значениями сдвига. Для зашифровывания может использоваться таблица алфавитов, называемая tabula recta или квадрат Виженера.

Интересным фактом является существование так называемых «черных кабинетов». Обычно это небольшая комната в почтовом отделении, где проводилась дешифрация (при необходимости) и проверка корреспонденции. Первая организация под наименованием «чёрный кабинет» появилась во Франции в XVII веке.

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

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

Использование криптографии в коммерческих целях привело к появлению новой валюты – всем известных BitCoin. Эта валюта никак не контролируется государством, что и привело к ее популярности. Биткоин — виртуальная валюта, которую существует в сети и ее можно обменять на реальные деньги. [2]

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

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

Во время Первой Мировой Войны криптография активно использовалась в ведении боевых действий. Лидерами в этой области были Россия и Франция, но свои наработки имели и другие страны, в том числе Англия и Германия. Возможно, самым известным случаем применения является телеграмма Циммермана. Она была перехвачена и расшифрована британским криптографическим отделом “Комната №40”. Текст этой телеграммы позволил США обосновать объявление войны Германии и вступить в боевые действия на стороне союзников.

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

Касательно американской М-209, она являлась модификацией шифровальной машины С-36 с использованием колесной системы. Главными преимуществами М-209 являлись ее независимость от наличия электрического тока и надежность. [1]

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

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

Очевидно, что в каких-либо целях людям требуется обойти шифрование. Наука, которая изучает методы расшифровки зашифрованной информации без предназначенного для такой расшифровки ключа, называется криптоанализом, а удачной раскрытие шифра – взломом или вскрытием. Первоначально методы криптоанализа основывались на лингвистических закономерностях естественного текста и реализовывались с использованием только карандаша и бумаги. Со временем в криптоанализе нарастает роль чисто математических методов, для реализации которых используются специализированные криптоаналитические компьютеры. [3]

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

Таким образом, подводя итоги исследования выявлено, что :

  1. История появления очень интересна и достаточно понятна, она мотивирует дальше изучать, читать и набираться знаний чтобы в дальнейшем быть умнее и помогать другим людям;

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

  1. Ковалевский В., Криптографические методы. — СПб.: Компьютер Пресс,.

  2. Баричев С. Г., Гончаров В. В., Серов Р. Е. Основы современной криптографии. — М.: Горячая линия — Телеком, 2002.,

  3. Симонович С.В. Информатика. Базовый курс. Дрофа 2000.

  4. Баричев С. Введение в криптографию. Электронный сборник. Вече1998.

Что такое шифрование и как им пользоваться

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

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

Есть что скрывать

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

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

Ваши фото, номера банковских карт и просто личная переписка интересуют всех: домочадцев, работодателей и, конечно, киберпреступников

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

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

Семь бед – один ответ

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

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

Что такое шифрование

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

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

Ваш цифровой сейф

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

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

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

Чтобы зашифрованный контейнер стал эффективной защитой вашей информации, нужно соблюдать несколько простых правил:

  • ключ (пароль) шифрования является единственной защитой информации от посторонних. Он должен быть очень длинным, трудным для подбора, – в общем, стойким. Советы по выбору стойкого пароля можно прочитать в этом посте;
  • на диске-хранилище нужно хранить всю конфиденциальную информацию;
  • вся информация на диске доступна знающему пароль. Если у вас есть разные группы информации для разных пользователей, заведите несколько хранилищ с разными паролями;
  • не держите диск-хранилище постоянно подключенным, иначе с него можно украсть файлы так же, как с обычного диска. Подключайте диск на время работы с важными данными и отключайте сразу после ее завершения;
  • информация на зашифрованном диске будет потеряна целиком, если файл-контейнер окажется хоть немного поврежден. Регулярно проводите резервное копирование файла-контейнера;
  • обязательно используйте всестороннюю защиту компьютера, чтобы обезопасить свой пароль от троянских приложений и «клавиатурных шпионов». Действующий шпион сводит парольную защиту на нет.

Сейф на смартфоне

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

В Android в настройках безопасности имеется опция полной шифровки содержимого телефона, которая делает все данные на устройстве недоступными без ввода пароля. Для максимальной надежности в обоих случаях рекомендованы свежие версии мобильных ОС – iOS с 6.1 и Android с 4.1.

«Облачная» защита

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

Шифрование — это… Что такое Шифрование?

Шифрова́ние — преобразование информации в целях сокрытия от неавторизованных лиц, с предоставлением, в это же время, авторизованным пользователям доступа к ней. Главным образом, шифрование служит задаче соблюдения конфиденциальности передаваемой информации. Важной особенностью любого алгоритма шифрования является использование ключа, который утверждает выбор конкретного преобразования из совокупности возможных для данного алгоритма.[1][2]

Пользователи являются авторизованными, если они обладают определенным аутентичным ключом. Вся сложность и, собственно, задача шифрования состоит в том, как именно реализован этот процесс.[1]

В целом, шифрование состоит из двух составляющих — зашифрование и расшифрование.

С помощью шифрования обеспечиваются три состояния безопасности информации:[1]

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

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

Цели шифрования

Шифрование применяется для хранения важной информации в ненадёжных источниках и передачи её по незащищенным каналам связи. Такая передача данных представляет из себя два взаимно обратных процесса:

  • Перед отправлением данных по линии связи или перед помещением на хранение они подвергаются зашифрованию.
  • Для восстановления исходных данных из зашифрованных к ним применяется процедура расшифрования.

Шифрование изначально использовалось только для передачи конфиденциальной информации. Однако, впоследствии, шифровать информацию начали с целью ее хранения в ненадежных источниках. Шифрование информации с целью ее хранения применяется и сейчас, это позволяет избежать необходимости в физически защищенном хранилище.[4][5]

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

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

Зашифрование и расшифрование

Как было сказано, шифрование состоит из двух взаимно обратных процессов: зашифрование и расшифрование. Оба этих процесса на абстрактном уровне представимы математическими функциями, к которым предъявляются определенные требования. Математически, данные, используемые в шифровании, представимы в виде множеств над которыми построены данные функции. Иными словами, пусть существуют два множества, представляющее данные — , и ; и каждая из двух функций(шифрующая и расшифровывающая) является отображением одного из этих множеств в другое.[6][7]

Шифрующая функция:
Расшифровывающая функция:

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

Если для шифрования и расшифрования используется один и тот же ключ , то такой алгоритм относят к симметричным. Если же из ключа шифрования алгоритмически сложно получить ключ расшифрования, то алгоритм относят к асимметричным, то есть к алгоритмам с открытым ключом.[8]

  • Для применения в целях шифрования эти функции, в первую очередь, должны быть взаимно обратными.[2]
  • Важной характеристикой шифрующей функции является ее криптостойкость. Косвенной оценкой криптостойкости является оценка взаимной информации между открытым текстом и шифротекстом, которая должна стремиться к нулю.

Криптостойкость шифра

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

Любая система шифрования, кроме абсолютно криптостойких, может быть взломана простым перебором всех возможных в данном случае ключей. Но перебирать придется до тех пор, пока не отыщется тот единственный ключ, который и поможет расшифровать шифротекст. Выбор этого единственного ключа основан на способности отличить правильно расшифрованое сообщение. Зачастую, эта особенность является камнем преткновения при подборе ключа, так как, перебирая вручную, криптоаналитику, зачастую, достаточно просто отличить правильно расшифрованный текст, однако ручной перебор очень медленен. Если же, программа выполняет перебор, то это происходит быстрее, однако, ей сложно выделить правильный текст. Невозможность взлома полным перебором абсолютно криптостойкого шифра, так же, основана на способности отличить в расшифрованном сообщении именно то, которое было зашифровано в криптограмме. Перебирая все возможные ключи и применяя их к абсолютно стойкой системе, криптоаналитик получит множество всех возможных сообщений, которые можно было зашифровать(в нем могут содержаться и осмысленные сообщения). Кроме того, процесс полного перебора длительный и трудоемкий. О сложностях метода прямого перебора можно судить исходя из приведенной ниже таблицы.[10]

Другой метод дешифровки основывается на анализе перехваченных сообщений. Этот метод имеет большое значение, так как перехват сообщений доступен злоумышленнику, если он обладает специальным оборудованием, а в отличие от достаточно мощного и дорогостоящего оборудования для решения задачи полного перебора, оборудование для перехвата сообщений более доступно. Например, перехват ван Эйка для ЭЛТ монитора осуществим с помощью обычной телевизионной антенны. Кроме того, существуют программы для перехвата сетевого трафика(снифферы), которые доступны и в бесплатных версиях.[12][13][14]

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

Клод Шеннон впервые оценил количество подобной информации в зашифрованных сообщениях следующим образом[10]

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

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

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

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

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

Абсолютно стойкие системы

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

Таким образом злоумышленник не сможет извлечь никакой полезной информации об открытом тексте из перехваченного шифротекста. Шифр обладающий таким свойством называется абсолютно стойким.[10]

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

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

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

  1. Шифрующая система должна создаваться с исключительно глубоким знанием структуры используемого языка передачи сообщений
  2. Сложная структура естественных языков крайне сложна и для устранения избыточности передаваемой информации может потребоваться крайне сложное устройство.
  3. Если в передаваемом сообщений возникает ошибка, то эта ошибка сильно разрастается на этапе кодирования и передачи, в связи со сложностью используемых устройств и алгоритмов.[16]
Достаточно стойкие системы

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

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

Добиться высокого уровня практической стойкости алгоритма можно двумя подходами:[18]

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

Методы шифрования

Существующие методы шифрования можно разделить на две большие группы:[6]

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

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

Блочный шифр можно превратить в поточный, разбивая входные данные на отдельные блоки и шифруя их по отдельности. Однако, блочные шифры являются более криптоустойчивыми по сравнению с поточными. Кроме того, блочные шифры работают зачастую быстрее и легко реализуемы посредством программного обеспечения. Поточные, же, шифры зачастую реализуются в аппаратном виде(в виде некой шифрующей аппаратуры), так как представление данных и их обработка в поточных шифрах очень близка к обработке данных и их передаче в аппаратуре. Там данные представляются именно потоком, чаще всего.[6][19]

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

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

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

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

Симметричные, а конкретнее, алфавитные алгоритмы шифрования были одними из первых алгоритмов.[20] Позднее было изобретено асимметричное шифрование, в котором ключи у собеседников разные.[21]

Схема реализации

Задача. Есть два собеседника — Алиса и Боб, они хотят обмениваться конфиденциальной информацией.
  • Генерация ключа.
Боб(или Алиса) выбирает ключ шифрования и алгоритм (функции шифрования и расшифрования), затем посылает эту информацию Алисе(Бобу).
  • Шифрование и передача сообщения.
Алиса шифрует информацию с использованием полученного ключа .
И передает Бобу полученный шифротекст . То же самое делает Боб, если хочет отправить Алисе сообщение.
  • Расшифрование сообщения.
Боб(Алиса), с помощью того же ключа , расшифровывает шифротекст .

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

Асимметричное шифрование (с открытым ключом)

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

В системах с открытым ключом используются два ключа — открытый и закрытый, связанные определенным математическим образом друг с другом. Открытый ключ передаётся по открытому (то есть незащищённому, доступному для наблюдения) каналу и используется для шифрования сообщения и для проверки ЭЦП. Для расшифровки сообщения и для генерации ЭЦП используется секретный ключ.[22]

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

Первыми исследователями, которые изобрели и раскрыли понятие шифрования с открытым кодом, были Уитфилд Диффи и Мартин Хеллман из Стэнфордского университета, и Ральф Меркле из Калифорнийского университета в Беркли. В 1976 году их работа «Новые направления в современной криптографии» открыла новую область в криптографии, теперь известную как криптография с открытым ключом.

Схема реализации

Задача. Есть два собеседника — Алиса и Боб, Алиса хочет передавать Бобу конфиденциальную информацию.
  • Генерация ключевой пары.
Боб выбирает алгоритм и пару открытый, закрытый ключи — и посылает открытый ключ Алисе по открытому каналу.
  • Шифрование и передача сообщения.
Алиса шифрует информацию с использованием открытого ключа Боба .
И передает Бобу полученный шифротекст .
  • Расшифрование сообщения.
Боб, с помощью закрытого ключа , расшифровывает шифротекст .

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

Управление ключами

Основные угрозы ключам

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

Цели управления ключами

  • Сохранение конфиденциальности закрытых ключей и передаваемой информации.
  • Обеспечение надежности сгенерированых ключей.
  • Предотвращение несанкционированного использования закрытых или открытых ключей, например использование ключа, срок действия которого истек.[23][24][25]

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

Система генерации ключей обеспечивает составление криптоустойчивых ключей. Сам алгоритм генерации должен быть безопасным, так как значительная часть безопасности, предоставляемой шифрованием, заключена в защищенности ключа. Если выбор ключей доверить пользователям, то они с большей вероятностью выбирают ключи типа «Barney» нежели «*9(hH/A», просто потому что «Barney» проще запомнить. А такого рода ключи очень быстро подбираются методом вскрытия со словарем, и тут даже самый безопасный алгоритм не поможет. Кроме того, алгоритм генерации обеспечивает создание статистически независимых ключей нужной длины, используя наиболее криптоустойчивый алфавит.[26]

Система контроля ключей служит для наиболее безопасной передачи ключей между собеседниками. Если передавать ключ шифрования по открытому каналу, который могут прослушивать, то злоумышленник легко перехватит ключ и все дальнейшее шифрование будет бессмысленным. Методы асимметричного шифрования решают эту проблему, используя разные ключи для зашифрования и расшифрования. Однако при таком подходе количество ключей растет с увеличением количества собеседников(каждый вынужден хранить свои закрытый и открытый ключи и открытые ключи всех собеседников). Кроме того, методы асимметричного шифрования не всегда доступны и осуществимы. В таких ситуациях используются разные методы по обеспечению безопасной доставки ключей, одни основаны на использовании для доставки ключей альтернативных каналов, считающихся безопасными. Другие, в согласии со стандартом X9.17, используют два типа ключей — ключи шифрования ключей и ключи шифрования данных. Третьи, разбивают передаваемый ключ на составные части и передают их по различным каналам. Так же, существуют различные комбинации перечисленных выше методов.[27]

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

Правовые нормы

Развитие шифрования и его методов привело к их широчайшей распространенности. Сейчас, для конечного пользователя не составляет труда зашифровать раздел на жестком диске или переписку и установить защищенное соединение в интернет. В связи с тем, что шифрование и другие информационные технологии проникают в наш быт, растет число компьютерных преступлений. Зашифрованная информация, так или иначе, представляет собой объект защиты, который, в свою очередь, должен подвергаться правовому регулированию. Кроме того, подобные правовые нормы необходимы из-за того, что существует некоторое противоречие между стремлением правительств иметь доступ к информации(с целью обеспечения безопасности и для предотвращения преступлений), и стремлением граждан обеспечить высокий уровень охраны для своей действительно секретной информации. Для разрешения этой проблемы, прибегают к разным способам, это и возможный запрет на использование высокоэффективных методов шифрования, и требование передачи компетентным органам шифровальных ключей. Различия в правилах и ограничениях по шифрованию компьютерной информации могут создать определенные трудности в деловых международных контактах в плане обеспечения конфиденциальности их общения. В связи с этим, в любом государстве, поведение в отношении передачи и шифрования информации регулируется различными правовыми нормами.[28]

Примечания

  1. 1 2 3 4 Мэйволд, 2006, Глава 12.Шифрование
  2. 1 2 3 Шнайер, 2002, с. 8
  3. 1 2 Шнайер, 2002, с. 8-9
  4. Шнайер, 2002, Введение
  5. Жельников, 1996, Введение
  6. 1 2 3 4 5 Шнайер, 2002, Глава 1. Основные понятия
  7. Шеннон, 1963, с. 1-8
  8. Шнайер, 2002, с. 9-10
  9. Мао, 2005, с. 43-45
  10. 1 2 3 4 Шеннон, 1963, Часть 2.Теоретическая секретность.
  11. Шнайер, 2002, Таблица 7-1
  12. 1 2 Мао, 2005, с. 45-48
  13. Шеннон, 1963, с. 12
  14. Wim van Eck Electromagnetic Radiation from Video Display Units: An Eavesdropping Risk? (англ.) // Computers & Security : журнал. — Elsevier Advanced Technology Publications, 1985. — В. 4. — Т. 4. — С. 269—286. — ISSN 01674048. — DOI:10.1016/0167-4048(85)90046-X
  15. Шеннон, 1963, Часть 2.Теоретическая секретность, с. 23-27
  16. Шеннон, 1963, Часть 2.Теоретическая секретность, с. 37
  17. Шеннон, 1963, Части 2 и 3.
  18. Шеннон, 1963, с. 39-40
  19. Шнайер, 2002, Глава 9. Типы алгоритмов и криптографические режимы
  20. Павел Исаев. Некоторые алгоритмы ручного шифрования (рус.) // КомпьютерПресс. — 2003. — В. 3.
  21. 1 2 Уитфилд Диффи, Мартин Хеллман Новые направления в криптографии (англ.). — 1976.
  22. Шнайер, 2002, Глава 1 и 19
  23. 1 2 3 Шнайер, 2002, Глава 8
  24. Алферов, 2002, с. 68-69
  25. Мао, 2005, с. 61-62
  26. Шнайер, 2002, Глава 8.1
  27. Шнайер, 2002, Глава 8.3
  28. Колесников Дмитрий Геннадьевич Защита информации в компьютерных системах (рус.).

Литература

  • Венбо Мао Современная криптография. Теория и практика = Modern Cryptography: Theory and Practice. — М.: Вильямс, 2005. — 768 p. — 2000 экз. — ISBN 5-8459-0847-7
  • А. П. Алферов, А. Ю. Зубов, А. С. Кузьмин, А. В. Черемушкин Основы Криптографии.. — Гелиос АРВ, 2002. — 480 с.

См. также

Ссылки

Назначение и структура алгоритмов шифрования

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

  1. Бесключевые, в которых не используются какие-либо ключи.
  2. Одноключевые — в них используется некий дополнительный ключевой параметр — обычно это секретный ключ.
  3. Двухключевые, использующие в своих вычислениях два ключа: секретный и открытый.

Рис. 1. Криптоалгоритмы

Обзор криптографических методов

Шифрование является основным методом защиты; рассмотрим его подробно далее.

Стоит сказать несколько слов и об остальных криптографических методах:

  1. Электронная подпись используется для подтверждения целостности и авторства данных. Целостность данных означает, что данные не были случайно или преднамеренно изменены при их хранении или передаче.
    Алгоритмы электронной подписи используют два вида ключей:
    • секретный ключ используется для вычисления электронной подписи;
    • открытый ключ используется для ее проверки.

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

  2. Аутентификация позволяет проверить, что пользователь (или удаленный компьютер) действительно является тем, за кого он себя выдает. Простейшей схемой аутентификации является парольная — в качестве секретного элемента в ней используется пароль, который предъявляется пользователем при его проверке. Такая схема доказано является слабой, если для ее усиления не применяются специальные административно-технические меры. А на основе шифрования или хэширования (см. ниже) можно построить действительно сильные схемы аутентификации пользователей.
  3. Существуют различные методы криптографического контрольного суммирования:
    • ключевое и бесключевое хэширование;
    • вычисление имитоприставок;
    • использование кодов аутентификации сообщений.

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

    • для подтверждения целостности любых данных в тех случаях, когда использование электронной подписи невозможно (например, из-за большой ресурсоемкости) или является избыточным;
    • в самих схемах электронной подписи — «подписывается» обычно хэш данных, а не все данные целиком;
    • в различных схемах аутентификации пользователей.
  4. Генераторы случайных и псевдослучайных чисел позволяют создавать последовательности случайных чисел, которые широко используются в криптографии, в частности:
    • случайные числа необходимы для генерации секретных ключей, которые, в идеале, должны быть абсолютно случайными;
    • случайные числа применяются во многих алгоритмах электронной подписи;
    • случайные числа используются во многих схемах аутентификации.

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

Шифрование

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

Можно представить зашифрование в виде следующей формулы:

С = Ek1(M),

где:
M (message) — открытая информация,
С (cipher text) — полученный в результате зашифрования шифртекст,
E (encryption) — функция зашифрования, выполняющая криптографические преобразования над M,
k1 (key) — параметр функции E, называемый ключом зашифрования.

В стандарте ГОСТ 28147-89 (стандарт определяет отечественный алгоритм симметричного шифрования) понятие ключ определено следующим образом: «Конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования, обеспечивающее выбор одного преобразования из совокупности всевозможных для данного алгоритма преобразований».

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

Аналогичным образом можно представить и расшифрование:

M’ = Dk2(C),

где:
M’— сообщение, полученное в результате расшифрования,
D (decryption) — функция расшифрования; так же, как и функция зашифрования, выполняет криптографические преобразования над шифртекстом,
k2 — ключ расшифрования.

Для получения в результате расшифрования корректного открытого текста (то есть того самого, который был ранее зашифрован: M’ = M), необходимо одновременное выполнение следующих условий:

  1. Функция расшифрования должна соответствовать функции зашифрования.
  2. Ключ расшифрования должен соответствовать ключу зашифрования.

При отсутствии верного ключа k2 получить исходное сообщение M’ = M с помощью правильной функции D невозможно. Под словом «невозможно» в данном случае обычно понимается невозможность вычисления за реальное время при существующих вычислительных ресурсах.

Алгоритмы шифрования можно разделить на две категории (см. рис. 1):

  1. Алгоритмы симметричного шифрования.
  2. Алгоритмы асимметричного шифрования.

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

В асимметричном шифровании ключ зашифрования k1 легко вычисляется из ключа k2 таким образом, что обратное вычисление невозможно. Например, соотношение ключей может быть таким:

k1 = ak2 mod p,

где a и p — параметры алгоритма шифрования, имеющие достаточно большую размерность.

Такое соотношение ключей используется и в алгоритмах электронной подписи.

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

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

Симметричное шифрование бывает двух видов:

  • Блочное шифрование — информация разбивается на блоки фиксированной длины (например, 64 или 128 бит), после чего эти блоки поочередно шифруются. Причем, в различных алгоритмах шифрования или даже в разных режимах работы одного и того же алгоритма блоки могут шифроваться независимо друг от друга или «со сцеплением» — когда результат зашифрования текущего блока данных зависит от значения предыдущего блока или от результата зашифрования предыдущего блока.
  • Поточное шифрование — необходимо, прежде всего, в тех случаях, когда информацию невозможно разбить на блоки — скажем, некий поток данных, каждый символ которых должен быть зашифрован и отправлен куда-либо, не дожидаясь остальных данных, достаточных для формирования блока. Поэтому алгоритмы поточного шифрования шифруют данные побитно или посимвольно. Хотя стоит сказать, что некоторые классификации не разделяют блочное и поточное шифрование, считая, что поточное шифрование — это шифрование блоков единичной длины.

Рассмотрим, как выглядят изнутри алгоритмы блочного симметричного шифрования.Структура алгоритмов шифрования

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

  1. Алгоритмы на основе сети Фейстеля.

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

    Рис. 2. Структура алгоритмов на основе сети Фейстеля.

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

    Наложение обработанного субблока на необработанный чаще всего выполняется с помощью логической операции «исключающее или» — XOR (как показано на рис. 2). Достаточно часто вместо XOR здесь используется сложение по модулю 2n, где n — размер субблока в битах. После наложения субблоки меняются местами, то есть в следующем раунде алгоритма обрабатывается уже другой субблок данных.

    Такая структура алгоритмов шифрования получила свое название по имени Хорста Фейстеля (Horst Feistel) — одного из разработчиков алгоритма шифрования Lucifer и разработанного на его основе алгоритма DES (Data Encryption Standard) — бывшего (но до сих пор широко используемого) стандарта шифрования США. Оба этих алгоритма имеют структуру, аналогичную показанной на рис. 2. Среди других алгоритмов, основанных на сети Фейстеля, можно привести в пример отечественный стандарт шифрования ГОСТ 28147-89, а также другие весьма известные алгоритмы: RC5, Blowfish, TEA, CAST-128 и т.д.

    На сети Фейстеля основано большинство современных алгоритмов шифрования — благодаря множеству преимуществ подобной структуры, среди которых стоит отметить следующие:

    • Алгоритмы на основе сети Фейстеля могут быть сконструированы таким образом, что для зашифрования и расшифрования могут использоваться один и тот же код алгоритма — разница между этими операциями может состоять лишь в порядке применения ключей Ki; такое свойство алгоритма наиболее полезно при его аппаратной реализации или на платформах с ограниченными ресурсами; в качестве примера такого алгоритма можно привести ГОСТ 28147-89.
  2. Алгоритмы на основе сети Фейстеля являются наиболее изученными — таким алгоритмам посвящено огромное количество криптоаналитических исследований, что является несомненным преимуществом как при разработке алгоритма, так и при его анализе.

    Существует и более сложная структура сети Фейстеля, пример которой приведен на рис. 3.

    Рис. 3. Структура сети Фейстеля.

    Такая структура называется обобщенной или расширенной сетью Фейстеля и используется существенно реже традиционной сети Фейстеля. Примером такой сети Фейстеля может служить алгоритм RC6.

  3. Алгоритмы на основе подстановочно-перестановочных сетей (SP-сеть — Substitution-permutation network).

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

    Рис. 4. Подстановочно-перестановочная сеть.

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

    SP-сети распространены существенно реже, чем сети Фейстеля; в качестве примера SP-сетей можно привести алгоритмы Serpent или SAFER+.

  4. Алгоритмы со структурой «квадрат» (Square).

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

    Структура алгоритма получила свое название от алгоритма Square, который был разработан в 1996 году Винсентом Риджменом (Vincent Rijmen) и Джоан Деймен (Joan Daemen) — будущими авторами алгоритма Rijndael, ставшего новым стандартом шифрования США AES после победы на открытом конкурсе. Алгоритм Rijndael также имеет Square-подобную структуру; также в качестве примера можно привести алгоритмы Shark (более ранняя разработка Риджмена и Деймен) и Crypton. Недостатком алгоритмов со структурой «квадрат» является их недостаточная изученность, что не помешало алгоритму Rijndael стать новым стандартом США.

    Рис. 5. Алгоритм Rijndael.

    На рис. 5 приведен пример операции над блоком данных, выполняемой алгоритмом Rijndael.

  5. Алгоритмы с нестандартной структурой, то есть те алгоритмы, которые невозможно причислить ни к одному из перечисленных типов. Ясно, что изобретательность может быть безгранична, поэтому классифицировать все возможные варианты алгоритмов шифрования представляется сложным. В качестве примера алгоритма с нестандартной структурой можно привести уникальный по своей структуре алгоритм FROG, в каждом раунде которого по достаточно сложным правилам выполняется модификация двух байт шифруемых данных (см. рис. 6).

    Рис. 6. Модификация двух байт шифруемых данных.

    Строгие границы между описанными выше структурами не определены, поэтому достаточно часто встречаются алгоритмы, причисляемые различными экспертами к разным типам структур. Например, алгоритм CAST-256 относится его автором к SP-сети, а многими экспертами называется расширенной сетью Фейстеля. Другой пример — алгоритм HPC, называемый его автором сетью Фейстеля, но относимый экспертами к алгоритмам с нестандартной структурой.

Основы и способы информационной безопасности в 2017 году / Хабр

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

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


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

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

Основы

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

Шифрование

Для начала определение:

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

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

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

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

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

Примеры симметричных алгоритмов:

DES — алгоритм для симметричного шифрования, разработанный фирмой IBM и утверждённый правительством США в 1977 году как официальный стандарт.

Прямым развитием DES в настоящее время является алгоритм Triple DES (3DES). В 3DES шифрование/расшифровка выполняются путём троекратного выполнения алгоритма DES.

AES — также известный как Rijndael (произносится [rɛindaːl] (Рэндал)) — симметричный алгоритм блочного шифрования (размер блока 128 бит, ключ 128/192/256 бит), принятый в качестве стандарта шифрования правительством США по результатам конкурса AES. Этот алгоритм хорошо проанализирован и сейчас широко используется, как это было с его предшественником DES.

Blowfish (произносится [бло́уфиш]) — криптографический алгоритм, реализующий блочное симметричное шифрование с переменной длиной ключа. Разработан Брюсом Шнайером в 1993 году.

ГОСТ 28147-89 (Магма) — российский стандарт симметричного блочного шифрования, принятый в 1989 году. Является примером DES-подобных криптосистем.

В 2015 г. вместе с новым алгоритмом «Кузнечик» один из вариантов алгоритма ГОСТ-89 был опубликован под названием «Магма» как часть стандарта ГОСТ Р 34.12-2015.

Блочный шифр «Кузнечик» — симметричный алгоритм блочного шифрования с размером блока 128 битов и длиной ключа 256 битов.

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

Криптосистема RSA стала первой системой, пригодной и для шифрования, и для цифровой подписи. Алгоритм используется в большом числе криптографических приложений, включая PGP, S/MIME, TLS/SSL, IPSEC/IKE и других.

ГОСТ Р 34.10-2012 — российский стандарт, описывающий алгоритмы формирования и проверки электронной цифровой подписи.

SSL шифрование

SSL (англ. Secure Sockets Layer — уровень защищённых cокетов) — криптографический протокол, который подразумевает более безопасную связь. По сути, это способ передачи информации в интернете, который подразумевает прозрачное шифрование данных. Протокол широко использовался для обмена мгновенными сообщениями и передачи голоса через IP (англ. Voice over IP — VoIP) в таких приложениях, как электронная почта, интернет-факс и др.
Впоследствии на основании протокола SSL 3.0 был разработан и принят стандарт RFC, получивший имя TLS.

TLS (англ. Transport Layer Security — Протокол защиты транспортного уровня), как и его предшественник SSL— криптографические протоколы, обеспечивающие защищённую передачу данных между узлами в сети Интернет.

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

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

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

Хеширование

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

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

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

Базовые принципы создания стойкого пароля

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

  • Пароль должен быть как минимум длиной в 15 символов, а оптимальным вариантом 20. Больше лучше, но перебарщивать тоже не стоит.
  • Отсутствие слов, популярных шаблонов (qwerty и так далее), дат и различной информации, связанной с вами в самом пароле.
  • Пароль должен содержать строчные и прописные буквы, цифры, спецсимволы (#%^&*@!).

Двухфакторная аутентификация

Двухфакторная аутентификация – это способ аутентификации (подтверждения личности) который подразумевает под собой использования два способа подтверждения личности.

Например, при входе в аккаунт на каком-либо сайте, вы сначала вводите ваш пароль, а дальше код присланный по СМС на доверенный номер телефона.

Есть много различных способов аутентификации:

  • Пароль
  • ПИН код
  • СМС с кодом
  • Отпечаток пальца
  • Флеш токен (флешка с записанным уникальным ключом)
  • Push уведомления в приложении на смартфоне

Где только возможно, используйте двухфакторную аутентификацию. Даже если ваш пароль узнают или подберут, то нарушитель не сможет пройти второй способ аутентификации.

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

  • Google
  • WhatsApp
  • Telegram
  • Вконтакте
  • Facebook
  • Mail.ru
  • Yandex
  • DropBox

Хранение данных

Менеджер паролей KeePassX

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

Рекомендуется использовать для разных сервисов разные пароли, лучше всего их генерировать. Но тогда встает вопрос о запоминании всех паролей.

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

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

Данная программа абсолютно бесплатна, у нее открытые исходные коды и она запускается на всех основных платформах (Windows, macOS, Linux).

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

В программе есть генератор стойких паролей.

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

Сайт — www.keepassx.org

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

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

Довольно надежным способом является – шифрование данных. Есть много различных программ, которые позволяют шифровать данные. Есть платные и бесплатные. Есть даже решения, встроенные в операционную систему. Например, BitLocker в Windows и FireVault в macOS.

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

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

Но так как исходный код TrueCrypt был открытым, за дальнейшую разработку и поддержку взялась другая команда. Они устранили несколько уязвимостей и выпустили новую версию под название VeraCrypt.

Данная программа постоянно проверяется и проходит аудиты безопасности.

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

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

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

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

Можно зашифровать флеш накопитель и тогда его содержимое будет также доступно вам через пароль.

Сайт — www.veracrypt.fr

Общение

Почтовый сервис ProtonMail

Для общения на расстоянии можно использовать и почту. Например, как это сделал Эдвард Сноуден, который поведал миру о тотальной слежке спец служб США.

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

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

Есть веб версия, клиенты под Android и iOS. Сервис переведен на многие языки включая русский.

Сайт — protonmail.com

Защищенный мессенджер Signal

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

Приложение проходило аудит и постоянно проверяется.

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

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

Есть клиенты для Android, iOS, Windows, macOS, Linux.

Сайт — signal.org

Безопасный выход в интернет

Безопасный браузер Tor Browser

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

Сам Tor Browser состоит не только из особенностей onion сетей, но и из дополнений, которые выключает все отслеживающие кнопки и скрипты, а также направляют весь трафик через HTTPS.

Сайт — www.torproject.org

Виртуальная частная сеть ProtonVPN

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

Это позволяет не только скрыть изначальный источник запроса, но и зашифровать данные.

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

Я использую программное обеспечение ProtonVPN, от создателей ProtonMail. Их почтовый сервис прекрасно себя зарекомендовал, и увидев доступность VPN клиента от данной команды сразу решил установить и использовать.

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

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

Сайт — protonvpn.com

Анонимная операционная система Tails

Tails это самый ультимативный вариант. Это операционная система, основанная на ядре Linux.

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

В данной операционной системе можно работать в интернете, работать с почтой и максимально важными данными на компьютере.

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

Сайт — tails.boum.org

Заключение

Спасибо что дочитали статью до конца. Надеюсь описанные мною вещи стали понятными. За дополнительными деталями вы всегда можете обратиться к сети Интернет.

Буду рад комментариям, замечаниям и критике.

Кодирование

— Шифрование — Полевое руководство по информатике

Шифр ​​подстановки берет каждый символ (иногда группы символов) в сообщении и заменяет его другим символом в соответствии с установленными правилами.
Каждое появление одного символа будет заменено тем же символом замены.

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

В этом разделе мы рассмотрим простой шифр подстановки, называемый шифром Цезаря.
Шифру Цезаря более 2000 лет, он был изобретен парнем по имени Юлий Цезарь.
Прежде чем мы пойдем дальше, попробуем взломать этот простой код.
Если вы застряли, попробуйте поработать в небольшой группе с друзьями и одноклассниками, чтобы обсудить идеи.
Для этого упражнения пригодятся доска или ручка и бумага.

 DRO BOCMEO WSCCSYX GSVV ECO K ROVSMYZDOB, г.
KBBSFSXQ KD XYYX DYWYBBYG.
LO BOKNI DY LBOKU YED KC CYYX
KC IYE ROKB DRBOO
LVKCDC YX K GRSCDVO.
S'VV LO GOKBSXQ K BON KBWLKXN.
 

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

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

Когда вы посмотрели на шифр Цезаря в предыдущем разделе и (надеюсь) взломали его и выяснили, что в нем говорится, вы, вероятно, заметили, что существует закономерность в том, как буквы из исходного сообщения соответствуют буквам в декодированном.
Каждая буква в исходном сообщении декодируется в букву, которая стояла перед ней на 10 позиций в алфавите.Таблица преобразования, которую вы нарисовали, должна была выделить это.
Вот таблица соответствия букв, где буква «К» переводится в «А».
Ничего страшного, если ваша таблица преобразования отображена противоположным образом, т.е. «A» в «K», а не «K» в «A».
Если вам не удалось взломать шифр Цезаря в предыдущем разделе, вернитесь к нему сейчас и расшифруйте его с помощью таблицы.

В этом примере мы говорим, что ключ — 10 , потому что ключи в шифре Цезаря — это числа от 1 до 25 (подумайте, почему нам не нужен ключ 26!), Которые определяют, насколько далеко должен быть алфавит. повернутый.Если бы вместо этого мы использовали ключ 8 , таблица преобразования была бы следующей.


Что такое ключ?

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

В физическом мире кодовый замок полностью аналогичен шифру (фактически, вы можете отправить секретное сообщение в ящик, закрытый кодовым замком).
Мы предполагаем, что единственный способ открыть коробку — это вычислить комбинацию чисел.
Комбинированный номер — это , ключ для коробки.
Если это трехзначная блокировка, у вас будет только 1000 значений, которые можно попробовать, что может не занять слишком много времени.Четырехзначный замок имеет в 10 раз больше значений, поэтому он более безопасен.
Конечно, могут быть способы уменьшить объем необходимой работы — например, если вы знаете, что человек, который заблокировал его, никогда не показывает правильную цифру, тогда вам нужно угадать только 9 цифр для каждого места, а не 10, на что потребуется менее трех четвертей времени!

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

.

асимметричное шифрование | Типы, примеры и факты

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

Два типа шифрования

Асимметричное шифрование было создано для решения проблемы, вызванной симметричным шифрованием. Давайте посмотрим на эту иллюстрацию. У пользователя 1 есть конфиденциальный документ, которым он хочет поделиться с пользователем 2. Он использует программу шифрования для защиты своего документа с помощью пароля, который он выбирает, а затем отправляет зашифрованный документ пользователю 2.Однако Пользователь 2 не может открыть сообщение, потому что он не знает пароль, который Пользователь 1 использовал для шифрования документа. У пользователя 2 нет ключа, чтобы открыть замок. Теперь, как Пользователь 1 безопасно передает пароль пользователю 2? Отправка его по электронной почте опасна, потому что другие могут получить доступ к паролю и использовать его для расшифровки любых сообщений между пользователем 1 и 2. Вот почему было создано асимметричное шифрование.

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

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

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

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

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

.

Как работает шифрование | HowStuffWorks

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

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

Объявление

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

  • Информация о кредитной карте
  • Номера социального страхования
  • Частная корреспонденция
  • Личные данные
  • Конфиденциальная информация компании
  • Информация о банковском счете

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

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

.

Encryption News — ScienceDaily

Как люди предпочитают, чтобы отслеживание контактов с коронавирусом проводилось?

10 сентября 2020 г. — Новое исследование показывает, что люди предпочитают, чтобы отслеживание контактов с коронавирусом выполнялось комбинацией приложений и …


Потребители не полностью доверяют технологиям умного дома

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


Квантовая физика позволяет скрыть незнание

29 июня 2020 г. — Студенты могут скрывать свое невежество и правильно отвечать на вопросы на экзамене, чтобы учителя не заметили их недостаток знаний — но только в квантовом …


Защищают ли приложения COVID-19 вашу конфиденциальность?

8 июня 2020 г. — Многие мобильные приложения, отслеживающие распространение COVID-19, запрашивают личные данные, но не указывают, что они будут…


Генетические штрих-коды могут гарантировать подлинные отпечатки пальцев ДНК

21 мая 2020 г. — Инженеры продемонстрировали метод, гарантирующий, что все более популярный метод генетической идентификации, называемый «ДНК-отпечатки пальцев», остается защищенным от непреднамеренных …


Мы считаем, что менее других подвержены мошенничеству в Интернете

6 мая 2020 г. — Согласно новому исследованию кибербезопасности, мы менее других подвержены фишинговым атакам, недооценивая собственную подверженность риску…


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

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


Обнаружена критическая уязвимость, связанная со стартовым кровотечением, в микросхемах FPGA

16 апреля 2020 г. — Программируемые пользователем вентильные матрицы (FPGA) представляют собой гибко программируемые компьютерные микросхемы, которые во многих приложениях считаются очень безопасными компонентами.Ученые обнаружили, что критический …


Крошечный оптический резонатор может сделать квантовые сети возможными

30 марта 2020 г. — Инженеры показали, что атомы в оптических резонаторах могут стать основой для создания квантового …


Физик разрабатывает новый источник фотонов для защищенной связи

27 марта 2020 г. — Международная группа специалистов разработала новый метод генерации квантово-запутанных фотонов в спектральном диапазоне света, который ранее был недоступен.Обнаружение может произвести шифрование …


Более быстрый способ заменить плохую информацию в сетях

27 марта 2020 г. — Исследователи продемонстрировали новую модель распространения конкурирующей информации в социальных сетях и Интернете вещей (IoT). Полученные данные можно использовать для распространения точных …


Устройства на основе микросхем повышают практичность квантово-защищенной связи

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


Новый подход к песочнице в веб-браузере повышает безопасность

25 февраля 2020 г. — Новый мощный подход к защите веб-браузеров с использованием инструмента под названием WebAssembly получает свое первое реальное приложение в браузере Firefox. Разработанный группой исследователей подход …


Криптографический «тег всего» может защитить цепочку поставок

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


Аппаратная безопасность со смешанными сигналами предотвращает мощные электромагнитные атаки

19 февраля 2020 г. — Группа разработчиков разработала технологию использования схем смешанного сигнала для встраивания критически важной информации, которая подавляется при более низком …


Компьютерные серверы теперь могут получать данные намного быстрее

30 января 2020 г. — Ученые-компьютерщики нашли новый подход, который значительно повышает эффективность хранения и скорость вывода компьютера…


Разработана первая полностью оптическая технология скрытого шифрования

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


Угроза безопасности для электросамокатов и водителей

27 января 2020 г. — Новое исследование показало, что у электросамокатов есть риски, превосходящие опасность потенциальных столкновений.Эксперты по информатике опубликовали первый обзор рисков безопасности и конфиденциальности, создаваемых электронными скутерами и …


Организованная киберпреступность — не ваша обычная мафия

16 января 2020 г. — Ученые определили общие атрибуты сетей киберпреступности, выявив, как эти группы функционируют и работают вместе, чтобы нанести во всем мире примерно 445-600 миллиардов долларов ущерба на …


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

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


Четверг, 10 сентября 2020 г.

вторник, 4 августа 2020 г.

понедельник, 29 июня 2020 г.

понедельник, 8 июня 2020 г.

Четверг, 21 мая 2020 г.

среда, 6 мая 2020 г.

пятница, 17 апреля 2020 г.

Четверг, 16 апреля 2020 г.

понедельник, 30 марта 2020 г.

пятница, 27 марта 2020 г.

Четверг, 19 марта 2020 г.

25 февраля 2020 г., вторник

Четверг, 20 февраля 2020 г.

19 февраля 2020 г., среда

Четверг, 30 января 2020 г.

среда, 29 января 2020 г.

27 января 2020 г., понедельник

Четверг, 16 января 2020 г.

четверг, 19 декабря 2019 г.

вторник, 17 декабря 2019 г.

9 декабря 2019 г., Понедельник

Четверг, 5 декабря 2019 г.

четверг, 14 ноября 2019 г.

Четверг, 31 октября 2019 г.

вторник, 29 октября 2019 г.

четверг, 24 октября 2019 г.

21 октября 2019 г., понедельник

четверг, 10 октября 2019 г.

25 сентября 2019 г., среда

23 сентября 2019 г., понедельник

18 сентября 2019 г., среда

20 августа 2019 г., вторник

Четверг, 15 августа 2019 г.

14 августа 2019 г., среда

вторник, 30 июля 2019 г.

23 июля 2019 г., вторник

вторник, 2 июля 2019 г.

пятница, 28 июня 2019 г.

среда, 26 июня 2019 г.

четверг, 20 июня 2019 г.

четверг, 6 июня 2019 г.

среда, 29 мая 2019 г.

Четверг, 16 мая 2019 г.

6 мая 2019 г., понедельник

17 апреля 2019 г., среда

Четверг, 4 апреля 2019 г.

четверг, 28 февраля 2019 г.

среда, 27 февраля 2019 г.

26 февраля 2019 г., Вторник

25 февраля 2019 г., Понедельник

20 февраля 2019 г., среда

Воскресенье, 17 февраля 2019 г.

понедельник, 28 января 2019 г.

19 декабря 2018 г.

20 ноября 2018 г., вторник

5 ноября 2018 г., понедельник

2 ноября 2018 г., пятница

Четверг, 1 ноября 2018 г.

30 октября 2018 г., вторник

пятница, 26 октября 2018 г.

Четверг, 18 октября 2018 г.

1 октября 2018 г., понедельник

Четверг, 27 сентября 2018 г.

14 сентября 2018 г., пятница

4 сентября 2018 г., вторник

среда, 29 августа 2018 г.

пятница, 17 августа 2018 г.

15 августа 2018 г.

14 августа 2018 г., вторник

Четверг, 9 августа 2018 г.

8 августа 2018 г.

24 июля 2018 г., вторник

понедельник, 16 июля 2018 г.

среда, 11 июля 2018 г.

3 июля 2018 г., вторник

20 июня 2018 г., среда

четверг, 14 июня 2018 г.

11 июня 2018 г., понедельник

22 мая 2018 г., вторник

14 мая 2018 г., понедельник

11 мая 2018 г., пятница

Четверг, 10 мая 2018 г.

25 апреля 2018 г., среда

12 апреля 2018 г., четверг

11 апреля 2018 г., среда

26 марта 2018 г., понедельник

21 марта 2018 г., среда

28 февраля 2018 г., среда

23 февраля 2018 г., пятница

.

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

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