Зашифровано слово ключ 3 т: Зашифровано слово: Ключ: 3-Т, 9-О,4-Р,6-Л

Содержание

Как работает открытый ключ в ассиметричном шифровании? Как возможно, что им можно зашифровать, но нельзя расшифровать?

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

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

Представьте, что вы хотите зашифровать сообщение M. У вас есть открытый ключ E и закрытый ключ D. E и D «математически связаны». Также, у вас есть  универсальная функция F, которая может одновременно шифровать/расшифровывать и принимает 2 аргумента — сообщение и ключ, т. е. F(сообщение, ключ). Тогда, чтобы зашифровать сообщение, вы проделываете: F(M, E). Это будет ваше зашифрованное сообщение. Чтобы расшифровать это дело и получить M вы делаете: F(F(M, E), D) = M. Вот все казалось бы так просто…

На самом деле, для того чтобы объяснить, как связаны E и D, нужно уходить в математику и для каждого алгоритма эта «связь» будет своя, это тема для отдельной статьи или раздела в книге :).  

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

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

https://en.wikipedia.org/wiki/Public-key_cryptography

https://en.wikipedia.org/wiki/RSA_(cryptosystem)

https://en.wikipedia.org/wiki/Digital_signature

RSA-шифрование на пальцах

RSA-шифрование на пальцах

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

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

Итак. Допустим, я хочу получить от вас некие данные.
Мы с вам не хотим, чтобы эти данные узнал кто-то,
кроме нас. И у нас нет никакой уверенности в надёжности
канала передачи данных. Приступим.

Шаг первый. Подготовка ключей

Я должен
проделать предварительные действия: сгенерировать
публичный и приватный ключ.

  • Выбираю два простых числа. Пусть это будет
    p=3 и q=7.
  • Вычисляем модуль — произведение наших p и q: n=p×q=3×7=21.
  • Вычисляем функцию Эйлера: φ=(p-1)×(q-1)=2×6=12.
  • Выбираем число e, отвечающее следующим критериям:
    (i) оно должно быть простое,
    (ii) оно должно быть меньше φ — остаются варианты: 3, 5, 7, 11,
    (iii) оно должно быть взаимно простое с φ; остаются варианты 5, 7, 11.
    Выберем e=5. Это, так называемая, открытая экспонента.

Теперь пара чисел {e, n} — это мой открытый ключ. Я отправляю его
вам, чтобы вы зашифровали своё сообщение. Но для меня это ещё не всё.
Я должен получить закрытый ключ.

Мне нужно вычислить число d, обратное е по модулю φ. То есть
остаток от деления по модулю φ произведения d×e должен быть
равен 1. Запишем это в обозначениях, принятых во многих языках
программирования: (d×е)%φ=1. Или (d×5)%12=1. d может быть
равно 5 ((5×5)%12=25%12=1), но чтобы оно не путалось с e
в дальнейшем повествовании,
давайте возьмём его равным 17. Можете проверить сами, что
(17×5)%12 действительно равно 1 (17×5-12×7=1). Итак d=17.
Пара {d, n} — это секретный ключ, его я оставляю у себя. Его
нельзя сообщать никому. Только обладатель секретного
ключа может расшифровать то, что было зашифровано открытым ключом.

Шаг второй. Шифрование

Теперь пришла ваша очередь шифровать ваше сообщение.
Допустим, ваше сообщение это число 19. Обозначим его
P=19. Кроме него у вас уже есть мой открытый ключ:
{e, n} = {5, 21}. Шифрование выполняется по следующему
алгоритму:

  • Возводите ваше сообщение в степень e по модулю n.
    То есть, вычисляете 19 в степени 5 (2476099) и берёте
    остаток от деления на 21. Получается 10 — это ваши закодированные данные.

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

Полученные данные E=10, вы отправляете мне.

Здесь надо заметить, что сообщение P=19 не должно быть больше
n=21. иначе ничего не получится.

Шаг третий. Расшифровка

Я получил ваши данные (E=10), и у меня имеется закрытый ключ
{d, n} = {17, 21}.

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

Начинаем раскодировать:

  • Я делаю операцию, очень похожую на вашу, но вместо e использую d.
    Возвожу E в степень d: получаю 10 в степень 17 (позвольте, я не
    буду писать единичку с семнадцатью нулями). Вычисляю остаток от деления
    на 21 и получаю 19 — ваше сообщение.

Заметьте, никто, кроме меня (даже вы!) не может расшифровать ваше сообщение
(E=10), так как ни у кого нет закрытого ключа.

В чём гарантия надёжности шифрования

Надёжность шифрования обеспечивается тем, что третьему лицу
(старающемуся взломать шифр) очень трудно вычислить закрытый ключ
по открытому. Оба ключа вычисляются из одной пары простых чисел
(p и q). То есть ключи связаны между собой. Но установить эту
связь очень сложно. Основной загвоздкой является декомпозиция
модуля n на простые сомножители p и q. Если число является
произведением двух очень больших простых чисел, то его очень трудно разложить
на множители.

Постараюсь это показать на примере. Давайте разложим на множители число 360:

  • сразу ясно. что оно делится на два (получили 2)
  • оставшееся 180 тоже, очевидно чётное (ещё 2)
  • 90 — тоже чётное (ещё двойка)
  • 45 не делится на 2, но следующая же попытка оказывается успешной — оно делится на три (получили 3)
  • 15 тоже делится на 3
  • 5 — простое.

Мы на каждом шагу, практически без перебора, получали всё новые и
новые множители, легко получив полное разложение 360=2×2×2×3×3×5

Давайте теперь возьмём число 361. Тут нам придётся помучиться.

  • оно не чётное
  • три — нет, не делится
  • пять (допустим, мы поступаем умно и перебираем только простые числа, хотя, на практике, поиск больших простых чисел, сам по себе, является сложной задачей) — не подходит
  • семь? — нет.
  • и только 19 даст нам ответ: 361=19×19.

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

А как это всё работает на практике?

Многие читатели спрашивают, как всё это применяется на
практике. Давайте рассмотрим чуть более приближенный
к жизни пример. Зашифруем и расшифруем слово «КРОТ»,
предложенное одним из читателей. А заодно, бегло
рассмотрим, какие проблемы при этом встречаются и
как они решаются.

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

Оттолкнёмся от пары простых чисел {p, q} = {17, 19}.
Пусть наш открытый ключ будет {e, n} = {5, 323}, а
закрытый {d, n} = {173, 323}.

Мы готовы к шифрованию. Переведём наше слово в цифровое
представление. Мы можем взять просто номера букв в алфавите.
У нас получится последовательность чисел: 11, 17, 15, 19.

Мы можем зашифровать каждое из этих чисел открытым
ключом {e, n} = {5, 323} и получить
шифровку 197, 272, 2, 304. Эти числа можно передать
получателю, обладающему закрытым ключом {d, n} = {173, 323}
и он всё расшифрует.

Немного о сложностях

На самом деле, изложенный способ шифрования очень слаб и никогда
не используется. Причина проста — шифрование по буквам.
Одна и та же буква будет шифроваться одним и тем же числом.
Если злоумышленник перехватит достаточно большое
сообщение, он сможет догадаться о его содержимом.
Сперва он обратит внимание на частые коды пробелов
и разделит шифровку на слова. Потом он заметит однобуквенные
слова и догадается, как кодируются буквы «a», «и», «o», «в», «к»…
Путём недолгого перебора, он вычислит дополнительные буквы
по коротким словам, типа «но», «не», «по». И по более длинным
словам без труда восстановит все оставшиеся буквы.

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

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

Упрощённо, это выглядит так. Перед шифрованием, мы применяем
к сообщению правило: b := (b + a) % n. Где a — предыдущая
часть сообщения, а b — следующая. То есть наше сообщение
(11, 17, 15, 19) изменяется. 11 остаётся без изменений.
17 превращается в (11 + 17) % 323 = 28. 15 становится
(15 + 28) % 323 = 43. A 19 превращается в 62.

Последовательность (11, 28, 43, 62) получается
«запутанной». Все буквы в ней как бы перемешаны, в том
смысле, что на каждый код влияет не одна буква, а все
предыдущие.

Тот, кто получит ваше сообщение, должен будет
проделать обратную операцию, со знаком «минус»:
b := (b - a) % n. И только тогда он получит коды
букв.

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

То есть мы можем добавить случайное число в начало
и получить (299, 11, 17, 15, 19). После перемешивания
получится: 299, 310, 4, 19, 38. После шифрования
уже невозможно будет догадаться где была какая буква.

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

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

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




Отправить

Проект SAFE » Mailvelope: шифрование электронной почты

Mailvelope – дополнение к браузеру (Google Chrome, Mozilla Firefox), он предназначен для веб-почты. Новый адрес email заводить не нужно. Mailvelope позволяет шифровать и расшифровывать содержание электронных писем и файлы, которые затем можно отправлять как вложения. Ваш собеседник может пользоваться Mailvelope или любой другой программой на основе PGP/GnuPG. 

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

Содержание

Установка Mailvelope

1. Запустите браузер.

2. Зайдите на сайт Mailvelope. Чуть ниже и правее нажмите яркую кнопку «Download Mailvelope».

3. Если у вас Google Chrome, вы попадёте на сайт «Интернет-магазин Chrome», на страницу проекта Mailvelope. Нажмите кнопку «Установить».

Если у вас Mozilla Firefox, вы попадёте на сайт «Firefox Add-ons», на страницу проекта Mailvelope. Нажмите кнопку «Добавить в Firefox».

Браузер информирует о разрешениях, необходимых Mailvelope. Подтвердите установку.

4. Расширение установлено. В правом верхнем углу браузера вы увидите маленький логотип Mailvelope.


 

Интеграция Mailvelope в систему веб-почты

Mailvelope легко интегрируется с почтовыми веб-сервисами, включая популярный Gmail.

1. Откройте свою привычную страницу веб-почты для написания нового сообщения (например, GMail) и обратите внимание на правый верхний угол окна редактора (поле, в котором вы обычно пишете текст письма). Видите кнопку Mailvelope – вот такую?

Если кнопка видна, поздравляем: Mailvelope интегрирован в вашу веб-почту по умолчанию. Можете перейти к созданию ключей.

Если кнопки нет:

2. Нажмите кнопку Mailvelope в панели браузера, затем «Начнем!». В верхнем горизонтальном меню выберите «Настройки».

3. В левом столбце выберите «Домены».

Нажмите кнопку «Добавить».

4. Откроется окно с формой добавления сайта. Введите в поле «Сайт» название вашего почтового провайдера (формат не имеет значения), а в поле «Домен» – ваш почтовый домен с маской «*.», как на картинке. Нажмите кнопку «ОК». Ваш почтовый провайдер будет добавлен в Mailvelope, и в редакторе email появится нужная кнопка.

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

Чтобы настроить фон, нажмите значок Mailvelope. В открывшемся меню нажмите кнопку «Начнем!»​. Откроется окно. В верхней части найдите кнопку «Персонализируйте». Нажмите ее.

Выберите изображение и цвет по вкусу. Нажмите кнопку «Сохранить».


 

Создание шифровальных ключей

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

1. Нажмите кнопку Mailvelope в панели браузера.

Если вы пользуетесь Mailvelope впервые, нажмите кнопку «Начнем!». Откроется главное окно настроек Mailvelope.

2. Нажмите розовую кнопку «Создать ключ».

Откроется окно создания ключей.

4. Заполните форму.

  • Имя. Указывая настоящее имя, вы помогаете адресатам определить, чей это ключ. Так им легче будет выбирать нужный ключ для связи с вами. Если вы не хотите указывать свое настоящее имя, можете придумать псевдоним. Но помните: вашему собеседнику придется держать в памяти, что «Baba Yaga» – это вы. Не всякая память справится с этой задачей, особенно когда ключей несколько. Какой бы вариант вы ни выбрали, вводите текст на английском языке. До сих пор существуют программы, не вполне точно отображающие кириллицу. Не исключено, что кто-нибудь из адресатов пользуется именно такой программой.
  • E-mail. Лучше вводить реальный адрес. Многие шифровальные программы (включая Mailvelope) используют его для «опознания» ключей. Если вы укажете фейковый адрес, ваши собеседники будут испытывать проблемы, шифруя для вас письма.
  • Кнопку «Дополнительно» можно пропустить. (За ней скрываются полезные, но не первой необходимости функции).
  • Введите пароль. Это должен быть хороший пароль. Он будет защищать ваш секретный ключ и понадобится при расшифровке сообщений. Запомните этот пароль (или сохраните в надежном месте, например, в программном менеджере паролей KeePassXС).
  • Повторите пароль. Введенные пароли должны совпадать.
  • Галочку из поля «Загрузить открытый ключ на сервер ключей Mailvelope…» можно убрать.
  • Нажмите кнопку «Создать» в правом верхнем углу этого окна.

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

Картинка с парой ключиков слева от имени означает, что присутствует парный секретный (закрытый) ключ.
 

Экспорт открытого ключа

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

1. Нажмите на значок Mailvelope в панели браузера.

2. В главном меню Mailvelope выберите «Ключи».

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

4. Нажмите кнопку «Экспорт».

По умолчанию выбрано «Открытый». Вы экспортируете только открытый ключ. Так и должно быть.

5. Нажмите кнопку «Сохранить» и сохраните файл на диске. Нажмите кнопку «Закрыть».

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

Импорт открытого ключа собеседника

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

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

2. Нажмите на значок Mailvelope в панели браузера.

3. В главном меню Mailvelope выберите «Ключи».

4. Нажмите кнопку «Импорт». Появится вот такое окно:

5. Нажмите кнопку «Добавить файл» и выберите на диске присланный вам файл.

6. Нажмите кнопку «Импорт ключей». Во всплывающем окне нажмите «Подтвердить».

Теперь в списке (связке) ключей можно видеть как вашу пару ключей (William Wallace), так и импортированный ключ собеседника (Edward I).

 

Отправка зашифрованного письма

Попробуем зашифровать электронное письмо.

1. Откройте веб-почту, чтобы написать новое сообщение.

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

3. Наведите курсор на кнопку Mailvelope в правом верхнем углу редактора.


Кнопка при этом развернется. Вы увидите надпись. Нажмите.

4. Откроется окно редактора Mailvelope.

5. Когда закончите писать сообщение, нажмите кнопку «Зашифровать». В окне редактора вашей веб-почты появится зашифрованное сообщение.

6. Нажмите кнопку отправки сообщения.
 

Расшифровка полученного письма

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

1. Откройте письмо в своей веб-почте. Вы увидите фон и логотип Mailvelope:

2. Нажмите на значок. В открывшемся окне введите пароль к своему секретному ключу и нажмите кнопку «ОК».

3. Вы увидите расшифрованное сообщение

Показ расшифрованного письма происходит «внутри» Mailvelope (о чем сигнализирует фон). На сервере почтового провайдера письмо по-прежнему хранится зашифрованным.

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

Шифрование файла

Иногда нужно зашифровать не текстовое письмо, а файл. Любой – например, презентацию, электронную таблицу, файл PDF или фотографию. Mailvelope это умеет.

1. Нажмите на значок Mailvelope в панели браузера.

2. В главном меню Mailvelope выберите пункт «Шифрование файлов».

3. Откроется вот такое окно:

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

В строке «Вложения» выберите файл. Можно шифровать сразу несколько файлов.

Когда все будет готово, нажмите яркую кнопку «Зашифровать».

Когда добавите все нужные файлы, нажмите кнопку «Далее».

4. Появится окно с сообщением об успешном шифровании файла.

Можно щелкнуть по названию файла и сохранить его на диск. А потом делать с ним то, что хотели: отправлять по почте (как обычный файл-вложение) или в мессенджере, записать на флешку, сохранить в облаке. Файл сохранит в своем названии принадлежность (в данном случае) к Microsoft Word («doc»), но получит расширение .gpg (сообщает нам, что файл зашифрован).

 

Расшифровка файла

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

1. Нажмите значок Mailvelope в панели браузера.

2. В главном меню Mailvelope выберите пункт «Шифрование файлов».

3. В верхнем горизонтальном меню выберите «Расшифровать».

4. В окне расшифровки файла нажмите кнопку «Добавить». Выберите файл, который нужно расшифровать. Если зашифрованных файлов несколько, можете добавить все.

Когда готовы, нажмите кнопку «Расшифровать».

5. Введите пароль к секретному ключу.

Нажмите кнопку «ОК».

6. В открывшемся окне вы увидите расшифрованный файл.

Осталось нажать кнопку и сохранить файл на диск.
 

Создание резервной копии связки ключей

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

Ключи можно экспортировать поодиночке, как описано выше. Однако Mailvelope позволяет экспортировать всю связку ключей. Лучше делать такие резервные копии время от времени.

1. Нажмите на значок Mailvelope в панели браузера.

2. В главном меню Mailvelope выберите «Ключи».

3. В окне управления ключами нажмите кнопку «Экспорт» (над списком ключей).

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

4. Нажмите кнопку «Сохранить» и сохраните файл с ключами на диске.
 

Верификация (проверка) ключа

Что если злодей перехватит ваш открытый ключ, который вы отправите друзьям и знакомым, и подсунет вместо него свой собственный ключ, но под вашим именем?

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

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

Каждый шифровальный ключ имеет «отпечаток» – уникальный код, последовательность знаков. Отпечатки используют при верификации.

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

2. Нажмите на значок Mailvelope в панели браузера.

3. В главном меню Mailvelope выберите «Ключи».

4. В списке ключей щелкните по нужному ключу. Появится окно со всеми свойствами ключа.

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

6. Обратно: найдите в свойствах своего ключа отпечаток и сверьте его с тем, который видит в своей программе собеседник.

Интеграция с почтой Gmail (Google API)

Эта функция позволяет буквально «внедрить» Mailvelope в интерфейс почты Gmail, сделав использование шифрования ещё более удобным. Если вы пользовать Gmail, можете оценить эту функцию.

1. Нажмите на значок Mailvelope в панели браузера.

2. В главном меню Mailvelope нажмите на значок шестерёнки в заголовке меню, чтобы попасть в настройки Mailvelope.

3. В открывшемся окне обратите внимание на левый столбец. Выберите в нем пункт «Gmail API» и включите «Интеграция Gmail API».

4. Теперь попробуйте зайти в Gmail. Рядом с кнопкой создания нового письма появился знакомый значок Mailvelope:

5. Когда вы щелкнете по значку Mailvelope в первый раз, Google попросит подтвердить ваше решение интегрировать Mailvelope с почтой Google. Несколько окошек и финальная кнопка «Разрешить». После этого вы увидите знакомый фон редактора Mailvelope.

Обратите внимание: в этом окне можно сразу вложить файл(ы), если это необходимо. Больше нет нужды отдельно шифровать файлы и вручную прикладывать их к зашифрованному письму!
 

Самые распространенные ошибки

ПРОБЛЕМА. В редакторе Mailvelope адрес получателя отображается не зеленым, а красным цветом.

РЕШЕНИЕ. Открытый ключ этого адресата отсутствует в вашей связке ключей. Вариант: ключ адресата в связке есть, но с указанием другого адреса email (Mailvelope ищет соответствие адресов email). Следует попросить адресата прислать правильный ключ.

ПРОБЛЕМА. Мне пришло зашифрованное письмо, но я не могу его прочесть. Вижу сообщение о том, что отсутствует ключ.

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

ПРОБЛЕМА. Мне пришло зашифрованное письмо, я щелкаю по значку Mailvelope, кружочек крутится, но пароль не запрашивается.

РЕШЕНИЕ. У вас уже было открыто окно с запросом пароля, но по каким-то причинам пароль не был введен. Переключитесь между окнами (обычно Alt + Tab), найдите «потерянное» окошко.

 

Вопросы и ответы

ВОПРОС. Если я удалю Mailvelope с компьютера, что станет с зашифрованными письмами и файлами?

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

ВОПРОС. Все ли типы файлов можно шифровать?

ОТВЕТ. Да. Вы можете зашифровать любой файл.

ВОПРОС. Я забыл пароль к своему секретному ключу. Могу ли я как-нибудь восстановить пароль?

ОТВЕТ. Нет. Соответственно, вы не сможете расшифровывать полученные письма, которые были зашифрованы парным открытым ключом.

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

ОТВЕТ. Нет. Это еще одна причина регулярно делать резервные копии.

ВОПРОС. Я хотел отправить другу свой открытый ключ, но случайно отправил также и секретный ключ. Что делать?

ОТВЕТ. Считать эту пару ключей скомпрометированной и создать новую.

ВОПРОС. Я создал пару ключей, но теперь хочу поменять пароль. Можно ли это сделать?

ОТВЕТ. Да, это можно сделать в Mailvelope (в свойствах ключа).

ВОПРОС. Я хочу зашифровать письмо, но Mailvelope не предлагает ключ адресата. В чем дело?

ОТВЕТ. Возможны разные причины. Самая простая – неверно набранный адрес. Самая распространенная – открытый ключ адресата отсутствует в вашей связке ключей (не был импортирован). Mailvelope ищет в связке ключей нужный, ориентируясь на адрес email. Бывали случаи, когда адресат при создании ключа указывал фальшивый адрес e-mail, либо указывал дополнительный адрес e-mail (которым вы обычно не пользуетесь для связи с этим человеком), либо делал ошибку в адресе. Наконец, возможна ситуация, когда у ключа оказывался ограниченный срок действия. Если вы верно набрали адрес, но проблема остается, убедитесь, что актуального открытого ключа адресата в вашей связке нет, и попросите вашего собеседника прислать свой открытый ключ.

ВОПРОС. Может ли Mailvelope работать на других браузерах, помимо Firefox и Chrome? Например, Opera или Safari?

ОТВЕТ. Mailvelope работает в Firefox, Chrome, Edge, а также браузерах на основе Chromium (например, Brave).

ВОПРОС. Где Mailvelope хранит мои ключи?

ОТВЕТ. На вашем компьютере, в папке профиля. Mailvelope автоматически не загружает ключи на сервер, в облако и т.д.

ВОПРОС. Можно ли скрыть сам факт установки/наличия Mailvelope на компьютере?

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


Версия для печати

применение GnuPG в борьбе со слежкой

Шаг 3.б Отправьте зашифрованное письмо

Напишите новое письмо в своей почтовой программе, в поле «Кому»
укажите [email protected] В теме письма напишите «Тест шифрования»
или еще что-нибудь и напишите что-нибудь в теле письма.

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

Рядом с замком вы заметите изображение карандаша.
Мы вернемся к этому чуть погодя.

Нажмите «Отправить». Появится окно Enigmail с сообщением «Адресаты
неверны, не найдены или к ним нет доверия».

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

Теперь вы вернулись к окну «Адресаты неверны, не найдены или к ним
нет доверия». Поставьте галочку напротив ключа Эдварда и нажмите
«Send» («Отправить»).

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

Неполадки
Enigmail не может найти ключ Эдварда
Закройте все появившиеся с момента отправки сообщения окна.
Убедитесь, что вы подключены к Интернету, и попробуйте снова. Если это
не помогло, повторите процесс, выбрав другой сервер ключей.
Незашифрованные сообщения в каталоге «Отправленное»
Хотя вы не можете расшифровывать сообщения, зашифрованные чужим
ключом, ваша почтовая программа автоматически сохраняет копию,
зашифрованную вашим открытым ключом, которую вы сможете читать в
каталоге «Отправленное», как обычную почту. Это нормально и не
означает, что ваша почта отправлена незашифрованной.
Не нашли решения своей проблемы?
Пожалуйста, сообщите нам на странице
обратной связи.
Дополнительно
Шифрование в командной строке
Вы можете также шифровать и расшифровывать сообщения и файлы в
командной строке, если вам так удобнее (см. документацию GnuPG).
Параметр —armor задает вывод зашифрованных данных в виде текста.

Шифрование

в Microsoft 365 — соответствие требованиям Microsoft 365

  • 4 минуты на чтение

В этой статье

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

Что такое шифрование и как оно работает в Office 365?

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

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

Одновременно можно использовать несколько уровней шифрования. Например, вы можете зашифровать сообщения электронной почты, а также каналы связи, по которым проходит ваша электронная почта. В Office 365 ваши данные шифруются при хранении и передаче с использованием нескольких надежных протоколов шифрования и технологий, включая безопасность транспортного уровня / уровень защищенных сокетов (TLS / SSL), безопасность интернет-протокола (IPSec) и расширенный стандарт шифрования (AES). ).

Шифрование данных в состоянии покоя и данных в пути

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

Примеры данных в пути включают почтовые сообщения, которые находятся в процессе доставки, или разговоры, которые происходят на онлайн-встрече.В Office 365 данные передаются всякий раз, когда устройство пользователя взаимодействует с сервером Microsoft или когда сервер Microsoft взаимодействует с другим сервером.

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

Что делать, если мне нужен больший контроль над шифрованием для соответствия требованиям безопасности и соответствия требованиям?

Microsoft 365 предоставляет решения под управлением Microsoft для шифрования томов, файлов и почтовых ящиков в Office 365.Кроме того, Microsoft предоставляет решения для шифрования, которыми вы можете управлять и контролировать. Эти решения для шифрования построены на базе Azure.

Для получения дополнительных сведений см. Следующие ресурсы:

Как мне …

Для выполнения этой задачи Посмотреть эти ресурсы
Настроить шифрование для моей организации Настроить шифрование в Office 365 Корпоративный
Подробнее о сертификатах, технологиях и наборах шифров TLS Технические подробности о шифровании
Работа с зашифрованными сообщениями на мобильном устройстве Просмотр зашифрованных сообщений на вашем устройстве Android
Просмотр зашифрованных сообщений на вашем iPhone или iPad
Зашифруйте документ с помощью защиты паролем

Защита паролем не поддерживается в браузере.Используйте настольные версии Word, Excel и PowerPoint для защиты паролем.

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

План для возможностей безопасности и защиты информации Microsoft 365

10 основных способов защитить Microsoft 365 для бизнес-планов

Поток шифрования и воспроизведения на уровне Microsoft Stream Video

12 передовых методов управления ключами шифрования предприятия

От централизации к автоматизации — вот 12 шагов, которые помогут вам повысить эффективность корпоративного управления ключами шифрования.

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

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

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

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

Давайте разберемся.

Почему важно управление ключами надежного шифрования?

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

Национальный институт стандартов и технологий (NIST) лучше всего изложил это в своей специальной публикации 800-57, часть 1, ред. 5:

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

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

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

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

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

Преимущества внедрения инструментов и стратегий управления ключами шифрования

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

  • Более эффективное распределение / мобильность ключей.
  • Улучшенная видимость и контроль ключей для эффективного управления ключами.
  • Меньше разговоров между вашими сотрудниками, клиентами и ИТ-отделом.
  • Снижение затрат за счет автоматизации.
  • Снижение времени простоя и связанных с этим штрафов за несоблюдение требований.
  • Уменьшение потери данных.

Итак, что такое управление ключами шифрования?

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

Управление ключами шифрования включает:

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

Нужно ли мне защищать ключи шифрования?

Одним словом? Да. Надежное хранение ключей шифрования с помощью надежных процессов управления шифрованием имеет первостепенное значение. Как указано в NIST SP 800-57 часть 1, ред. 5:

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

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

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

Прежде чем думать о шифровании данных…

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

Требования к корпоративному управлению ключами шифрования

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

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

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

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

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

Передовые методы управления ключами шифрования предприятия

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

1. Централизуйте свои системы управления ключами шифрования

В наши дни многие компании используют сотни или даже тысячи ключей шифрования.Согласно отчету KeyFactor и Ponemon Institute за 2020 год, «60% респондентов считают, что в их организации используется более 10 000 сертификатов». Безопасное хранение этих ключей становится сложной задачей, так как во многих случаях вам необходимо получить немедленный доступ. Вот здесь и вступает в игру централизованное хранение ключей шифрования.

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

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

2. Используйте автоматизацию в ваших интересах

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

3. Централизовать роли пользователей и доступ

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

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

4. Поддержка нескольких стандартов шифрования

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

5. Внедрите надежную регистрацию и аудит

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

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

6.Создайте политику управления ключами шифрования для сотрудников

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

7. Реализуйте принцип наименьших привилегий

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

8. Интеграция со сторонними устройствами

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

9. Резервное копирование ключей шифрования

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

10. Защита диспетчера ключей и восстановление удаленных ключей

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

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

11. Будьте готовы к несчастным случаям

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

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

12. Меняйте ключи: без дешифрования / повторного шифрования

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

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

Последнее слово по управлению ключами шифрования

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

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

Что такое 256-битное шифрование? Сколько времени потребуется, чтобы взломать?

«В нем говорится, что 256-битное шифрование… это хорошо?»

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

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

Главный из них: насколько надежно 256-битное шифрование?

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

Давайте разберемся.

Краткое руководство по шифрованию, в целом

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

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

Пойдем с Джеком и Дайаной, и предположим, что Джек хочет отправить Дайане сообщение, в котором говорится: «О да, жизнь продолжается».

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

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

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

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

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

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

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

Но что на самом деле шифруется? Как вы шифруете «данные»?

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

Это восходит к тому, как компьютеры на самом деле обрабатывают данные. Компьютеры хранят информацию в двоичной форме. Комбинации 1 и 0. Любые данные, вводимые в компьютер, кодируются так, чтобы их могла прочитать машина. Именно эти закодированные данные в необработанном виде шифруются. На самом деле это часть того, что входит в различные типы файлов, используемых сертификатами SSL / TLS, частично это зависит от того, какой тип схемы кодирования вы пытаетесь зашифровать.

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

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

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

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

Примерно через год Рон Ривест, Ади Шамир и Леонард Адлеман создали одноименный метод обмена ключами, основанный на обмене ключами Диффи-Хеллмана (RSA), который также включал функции шифрования / дешифрования и аутентификации.Это актуально, потому что это было рождением совершенно новой итерации шифрования: асимметричного шифрования.

Они также дали нам вышеупомянутых Боба и Алису, что, по крайней мере, для меня, делает это своего рода стиркой.

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

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

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

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

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

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

2048-битные ключи против 256-битных ключей

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

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

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

Итак, когда вы видите, что кто-то ссылается на 2048-битный закрытый ключ, он, скорее всего, имеет в виду закрытый ключ RSA. Это асимметричный ключ. Он должен быть достаточно устойчивым к атакам, поскольку выполняет такую ​​важную функцию. Кроме того, потому что обмен ключами — лучший вектор атаки для компрометации соединения.Гораздо проще украсть данные, использованные для создания симметричного сеансового ключа, и вычислить его самостоятельно, чем взламывать ключ грубой силой после того, как он уже используется.

Напрашивается вопрос: «Насколько надежно ИС 256-битное шифрование?» Если он менее надежен, чем 2048-битный ключ, достаточно ли его? И мы собираемся ответить на этот вопрос, но сначала нам нужно охватить немного больше, чтобы обеспечить правильный контекст.

Что такое «бит» безопасности?

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

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

Также важно понимать разницу между
требование безопасности и уровень безопасности.

  • Заявление о безопасности — Это уровень безопасности, для достижения которого изначально был разработан криптографический примитив — рассматриваемый шифр или хеш-функция.
  • Уровень безопасности — ФАКТИЧЕСКАЯ стойкость, которую обеспечивает криптографический примитив.

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

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

Это может быть слишком абстрактно, поэтому вот небольшой пример: допустим, есть 2-битный ключ. Это означает, что у него будет 2 2 (4) значений.

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

Но прежде чем мы перейдем к математике, давайте вернемся к безопасности.
претензия по сравнению с уровнем безопасности

Требование об обеспечении

и уровень защиты

Обычно, когда вы видите, что шифрование продается, вы видите рекламу требования безопасности. Вот каким будет уровень безопасности в оптимальных условиях. Мы собираемся сохранить это специфическим для SSL / TLS и PKI, но процент времени, в течение которого поддерживаются оптимальные условия, далек от 100%. Ошибки конфигурации являются обычным явлением, как и поддержка старых версий SSL / TLS и устаревших наборов шифров для обеспечения совместимости.

В контексте SSL / TLS, когда клиент попадает на веб-сайт, происходит рукопожатие, когда две стороны определяют взаимно согласованный набор шифров для использования. Фактическая сила шифрования зависит от параметров, выбранных во время рукопожатия, а также от возможностей самого сервера и клиента.

Более пристальный взгляд на рукопожатие SSL / TLS


Во всем шифровании
Патрик Ноэ

Когда вы подключаетесь к веб-сайту через HTTPS, под капотом происходит много всего.В первую очередь всем нужно… пожать руку ?!

Читать далее

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

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

Так, например, SHA-256 имеет сопротивление столкновению 128 бит (n / 2), но сопротивление PreImage 256 бит. Очевидно, что хеширование отличается от шифрования, но есть также много общего, поэтому о нем стоит упомянуть.

Итак, насколько надежно 256-битное шифрование?

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

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

Итак, давайте посмотрим на AES или Advanced Encryption Standard, который обычно используется в качестве массового шифрования с SSL / TLS. Массовые шифры — это симметричные криптосистемы, которые фактически обеспечивают безопасность связи, происходящей во время зашифрованного HTTPS-соединения.

Исторически существует две разновидности: блочные шифры и потоковые шифры.

Блочные шифры разбивают все, что они зашифровывают, на блоки размером с ключ и шифруют их. Расшифровка включает в себя соединение блоков вместе. И если сообщение слишком короткое или слишком длинное, что бывает в большинстве случаев, их необходимо разбить и / или дополнить одноразовыми данными, чтобы сделать их подходящей длины. Атаки заполнения — одна из самых распространенных угроз для SSL / TLS.

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

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

TLS 1.2 Рекомендуемые шифры

  • TLS_ECDHE_ECDSA_WITH_ AES_256_GCM _SHA384
  • TLS_ECDHE_ECDSA_WITH_ AES_128_GCM _SHA256
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 TLS_ECDHE_RSA_WITH_ AES_256_GCM _SHA384
  • TLS_ECDHE_RSA_WITH_ AES_128_GCM _SHA256

TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305

TLS 1.3 Рекомендуемые шифры

  • TLS_ AES_256_GCM _SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_ AES_128_GCM _SHA256
  • TLS_ _ AES_256
  • TLS_ AES_256 9CC
  • TLS_ AES_256 9CC_CCS_ AES_256 9CC_CC

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

    Как мы уже говорили, вы можете безопасно запустить AES в GCM или CCM со 128-битными ключами и все будет в порядке.Вы получаете эквивалент 3072-битного RSA с точки зрения уровня безопасности. Но обычно мы предлагаем использовать 256-битные ключи, чтобы обеспечить максимальную вычислительную надежность в течение длительного периода времени.

    Итак, давайте посмотрим на эти 256-битные ключи. 256-битный ключ может иметь
    2 256 возможных комбинаций. Как мы упоминали ранее, двухбитовый ключ
    будет иметь четыре возможных комбинации (и может быть легко взломан двухбитным
    мошенник). Здесь мы имеем дело с возведением в степень, поэтому каждый раз, когда вы поднимаете
    exponent, n, вы резко увеличиваете количество возможных комбинаций.2 256
    — это 2 x 2, x 2, x 2… 256 раз.

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

    256-битный закрытый ключ будет иметь 115,792,089,237,316,195,423,570,985,008,687,907,853,269,
    984,665,640,564,039,457,584,007,913,129,639,936 (то есть 78 цифр) возможных комбинаций. Ни один суперкомпьютер на Земле не сможет взломать это в разумные сроки.

    Даже если вы используете Tianhe-2 (MilkyWay-2), самый быстрый суперкомпьютер в мире, на взлом 256-битного шифрования AES уйдут миллионы лет.

    Эта цифра взлетает до небес, когда вы пытаетесь вычислить время, необходимое для разложения закрытого ключа RSA.Для расчета 2048-битного ключа RSA потребуется 6,4 квадриллиона лет (6 400 000 000 000 000 лет), согласно DigiCert.

    Ни у кого нет такого времени.

    Quantum Computing все изменит

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

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

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

    Проблема в том, что квантовые компьютеры не используют биты, они используют квантовые биты или кубиты. Квантовый бит может быть как 1, так и 0 благодаря принципу, называемому суперпозицией, который немного сложнее, чем мы собираемся получить сегодня. Кубиты дают квантовым компьютерам возможность возводить в степень их атаки методом грубой силы, что эффективно сводит на нет вычислительную трудность, обеспечиваемую возведением в степень, которое имело место с криптографическим примитивом. Четыре компьютера Qubit могут одновременно находиться в четырех разных положениях (2 2 ).Это еще раз 2 n , поэтому квантовый компьютер с n кубитами может попробовать 2 n комбинаций одновременно. Bristlecone, который имеет 72 кубита, может сразу попробовать 2 72 (4,722,366,482,869,645,213,696) значений.

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

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

    Подведем итоги…

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

    Таким образом, ответ на вопрос «насколько надежно 256-битное шифрование» не дает однозначного ответа.По крайней мере, не все время.

    Однако в контексте SSL / TLS это чаще всего относится к
    Шифрование AES, где 256 бит действительно означают 256 бит. И, по крайней мере, для
    в настоящее время 256-битное шифрование по-прежнему достаточно надежно.

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

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

    Как всегда, оставляйте комментарии или вопросы ниже…


    Эта статья была первоначально написана Джеем Таккаром в 2017 году, а для 2019 года она была переписана Патриком Ноэ.

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

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

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

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

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

    Важность шифрования

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

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

    Как это используется?

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

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

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

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

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

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

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

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

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

    Преимущества шифрования

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

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

    Недостатки шифрования

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

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

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

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

    Управление ключами шифрования и упаковка

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

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

    Программное обеспечение

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

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

    Типы шифрования

    • Принесите собственное шифрование (BYOE) — это модель безопасности облачных вычислений, которая позволяет клиентам облачных услуг использовать собственное программное обеспечение для шифрования и управлять своими собственными ключами шифрования.BYOE также может называться , принеси свой собственный ключ (BYOK). BYOE работает, позволяя клиентам развертывать виртуализированный экземпляр своего собственного программного обеспечения для шифрования вместе с бизнес-приложением, которое они размещают в облаке.
    • Шифрование облачного хранилища — это услуга, предлагаемая поставщиками облачного хранилища, при которой данные или текст преобразуются с использованием алгоритмов шифрования и затем помещаются в облачное хранилище. Облачное шифрование практически идентично внутреннему шифрованию с одним важным отличием: клиенту облачного сервиса необходимо время, чтобы узнать о политиках и процедурах провайдера для шифрования и управления ключами шифрования, чтобы обеспечить соответствие шифрования уровню конфиденциальности хранимых данных. .
    • Шифрование на уровне столбца — это подход к шифрованию базы данных, при котором информация в каждой ячейке определенного столбца имеет один и тот же пароль для доступа, чтения и записи.
    • Отказанное шифрование — это тип криптографии, который позволяет дешифровать зашифрованный текст двумя или более способами, в зависимости от того, какой ключ дешифрования используется. Отрицательное шифрование иногда используется для дезинформации, когда отправитель ожидает или даже поощряет перехват сообщения.
    • Шифрование как услуга (EaaS) — это модель подписки, которая позволяет клиентам облачных услуг воспользоваться преимуществами безопасности, которые предлагает шифрование. Такой подход предоставляет клиентам, которым не хватает ресурсов для самостоятельного управления шифрованием, возможность решить проблемы, связанные с соблюдением нормативных требований, и защитить данные в многопользовательской среде. Предложения по облачному шифрованию обычно включают шифрование всего диска (FDE), шифрование базы данных или шифрование файлов.
    • Сквозное шифрование (E2EE) гарантирует, что данные, передаваемые между двумя сторонами, не могут быть просмотрены злоумышленником, который перехватывает канал связи.Использование зашифрованного канала связи, обеспечиваемого протоколом TLS, между веб-клиентом и программным обеспечением веб-сервера, не всегда достаточно для обеспечения E2EE; как правило, фактический передаваемый контент шифруется клиентским программным обеспечением перед передачей веб-клиенту и дешифруется только получателем. Приложения для обмена сообщениями, обеспечивающие E2EE, включают WhatsApp от Facebook и Signal от Open Whisper Systems. Пользователи Facebook Messenger также могут получать сообщения E2EE с опцией «Секретные беседы».
    • Шифрование на уровне поля — это возможность шифровать данные в определенных полях на веб-странице. Примерами полей, которые могут быть зашифрованы, являются номера кредитных карт, номера социального страхования, номера банковских счетов, информация о здоровье, заработная плата и финансовые данные. После выбора поля все данные в этом поле будут автоматически зашифрованы.
    • FDE — это шифрование на аппаратном уровне. FDE работает путем автоматического преобразования данных на жестком диске в форму, недоступную для понимания никому, у кого нет ключа для отмены преобразования.Без надлежащего ключа аутентификации, даже если жесткий диск будет удален и помещен на другой компьютер, данные останутся недоступными. FDE можно установить на вычислительное устройство во время производства или добавить позже, установив специальный программный драйвер.
    • Гомоморфное шифрование — это преобразование данных в зашифрованный текст, который можно анализировать и обрабатывать так, как если бы он был все еще в исходной форме. Такой подход к шифрованию позволяет выполнять сложные математические операции с зашифрованными данными без ущерба для шифрования.
    • HTTPS включает шифрование веб-сайтов путем запуска HTTP по протоколу TLS. Чтобы веб-сервер мог шифровать весь отправляемый им контент, необходимо установить сертификат открытого ключа.
    • Шифрование на уровне канала шифрует данные, когда они покидают хост, дешифрует их на следующей ссылке, которая может быть хостом или точкой ретрансляции, а затем повторно шифрует их перед отправкой на следующую ссылку. Каждая ссылка может использовать другой ключ или даже другой алгоритм для шифрования данных, и процесс повторяется до тех пор, пока данные не достигнут получателя.
    • Шифрование на сетевом уровне применяет криптосервисы на уровне сетевой передачи — выше уровня канала данных, но ниже уровня приложения. Сетевое шифрование реализуется с помощью IPsec, набора открытых стандартов Internet Engineering Task Force (IETF), которые при совместном использовании создают основу для частной связи по IP-сетям.
    • Квантовая криптография зависит от квантово-механических свойств частиц для защиты данных.В частности, принцип неопределенности Гейзенберга утверждает, что два идентифицирующих свойства частицы — ее местоположение и ее импульс — нельзя измерить без изменения значений этих свойств. В результате квантово-закодированные данные невозможно скопировать, потому что любая попытка доступа к закодированным данным изменит данные. Аналогичным образом, любая попытка скопировать данные или получить к ним доступ приведет к изменению данных, тем самым уведомив уполномоченные стороны шифрования о том, что произошла атака.

    Криптографические хеш-функции

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

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

    Популярные алгоритмы хеширования включают алгоритм безопасного хеширования (SHA-2 и SHA-3) и алгоритм дайджеста сообщения 5 (MD5).

    Шифрование и дешифрование

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

    Безопасность, обеспечиваемая шифрованием, напрямую связана с типом шифра, используемым для шифрования данных — силой ключей дешифрования, необходимых для возврата зашифрованного текста в открытый текст.В США криптографические алгоритмы, одобренные Федеральными стандартами обработки информации (FIPS) или Национальным институтом стандартов и технологий (NIST), должны использоваться всякий раз, когда требуются криптографические услуги.

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

    • AES — симметричный блочный шифр, выбранный правительством США для защиты секретной информации; он реализован в программном и аппаратном обеспечении по всему миру для шифрования конфиденциальных данных. NIST начал разработку AES в 1997 году, когда объявил о необходимости создания алгоритма-преемника для стандарта шифрования данных (DES), который начинал становиться уязвимым для атак методом грубой силы.
    • DES — устаревший метод шифрования данных с симметричным ключом. DES работает с использованием одного и того же ключа для шифрования и дешифрования сообщения, поэтому и отправитель, и получатель должны знать и использовать один и тот же закрытый ключ. DES был заменен более безопасным алгоритмом AES.
    • Обмен ключами Диффи-Хеллмана , также называемый экспоненциальным обменом ключами , представляет собой метод цифрового шифрования, который использует числа, увеличенные до определенных степеней, для создания ключей дешифрования на основе компонентов, которые никогда не передаются напрямую, что делает задачу потенциальный взломщик кода математически ошеломляет.
    • Криптография на основе эллиптических кривых (ECC) использует алгебраические функции для создания защиты между парами ключей. Полученные в результате криптографические алгоритмы могут быть более быстрыми и эффективными и могут обеспечивать сопоставимые уровни безопасности с более короткими криптографическими ключами. Это делает алгоритмы ECC хорошим выбором для устройств Интернета вещей (IoT) и других продуктов с ограниченными вычислительными ресурсами.
    • Квантовое распределение ключей (QKD) — это предложенный метод для зашифрованного обмена сообщениями, с помощью которого ключи шифрования генерируются с использованием пары запутанных фотонов, которые затем передаются отдельно в сообщение.Квантовая запутанность позволяет отправителю и получателю узнать, был ли ключ шифрования перехвачен или изменен еще до того, как поступит передача. Это потому, что в квантовой сфере ее изменяет сам акт наблюдения за передаваемой информацией. Как только будет определено, что шифрование является безопасным и не было перехвачено, дается разрешение на передачу зашифрованного сообщения по общедоступному интернет-каналу.
    • RSA был впервые публично описан в 1977 году Роном Ривестом, Ади Шамиром и Леонардом Адлеманом из Массачусетского технологического института (MIT), хотя создание в 1973 году алгоритма с открытым ключом британским математиком Клиффордом Коксом было засекречено U.Штаб-квартира правительственной связи К. (GCHQ) до 1997 года. Многие протоколы, такие как Secure Shell (SSH), OpenPGP, Secure / Multipurpose Internet Mail Extensions (S / MIME) и Secure Sockets Layer (SSL) / TLS, полагаются на RSA для функции шифрования и цифровой подписи.

    Популярные алгоритмы шифрования и хэш-функции

    Как взломать шифрование

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

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

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

    Бэкдоры шифрования

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

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

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

    Недавно правоохранительные органы, такие как Федеральное бюро расследований (ФБР), подвергли критике технологические компании, предлагающие E2EE, утверждая, что такое шифрование не позволяет правоохранительным органам получать доступ к данным и сообщениям даже при наличии ордера.ФБР назвало эту проблему «потемнением», в то время как Министерство юстиции США (DOJ) заявило о необходимости «ответственного шифрования», которое технологические компании могут разблокировать по решению суда.

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

    Угрозы для Интернета вещей, мобильных устройств

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

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

    В феврале 2018 года исследователи из Массачусетского технологического института представили новый чип, предназначенный для шифрования с открытым ключом, который потребляет лишь 1/400 энергии, чем программное обеспечение для выполнения тех же протоколов. Он также использует примерно 1/10 объема памяти и выполняется в 500 раз быстрее.

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

    История шифрования

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

    В 700 г. до н. Э. Спартанцы писали секретные послания на кожаных полосках, обернутых вокруг палок.Когда ленту разматывали, символы становились бессмысленными, но с палкой точно такого же диаметра получатель мог воссоздать (расшифровать) сообщение. Позже римляне использовали так называемый шифр сдвига Цезаря, моноалфавитный шифр, в котором каждая буква сдвигается на согласованное число. Так, например, если согласованное число — три, то сообщение «Будьте у ворот в шесть» будет преобразовано в «eh dw wkh jdwhv dw vla». На первый взгляд это может показаться трудным для расшифровки, но сопоставление начала алфавита до тех пор, пока буквы не станут понятными, не займет много времени.Кроме того, гласные и другие часто используемые буквы, такие как t и s, могут быть быстро выведены с помощью частотного анализа, и эта информация, в свою очередь, может использоваться для расшифровки остальной части сообщения.

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

    Только в середине 1970-х шифрование совершило серьезный скачок вперед. До этого момента все схемы шифрования использовали один и тот же секрет для шифрования и дешифрования сообщения: симметричный ключ.

    Шифрование

    почти исключительно использовалось только правительствами и крупными предприятиями до конца 1970-х годов, когда были впервые опубликованы алгоритмы обмена ключами Диффи-Хеллмана и RSA и появились первые ПК.

    В 1976 году в статье Уитфилда Диффи и Мартина Хеллмана «Новые направления в криптографии» была решена одна из фундаментальных проблем криптографии: как безопасно раздать ключ шифрования тем, кто в нем нуждается. Вскоре за этим прорывом последовал RSA, реализация криптографии с открытым ключом с использованием асимметричных алгоритмов, которая открыла новую эру шифрования. К середине 1990-х годов шифрование как с открытым, так и с закрытым ключом обычно применялось в веб-браузерах и на серверах для защиты конфиденциальных данных.

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

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

    Почему важно шифрование?

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

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

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

    Шифрование 101: как это работает?

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

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

    Наиболее распространенной формой симметричного шифрования является Advanced Encryption Standard (AES), правительственный стандарт США для шифрования. Данные в шестнадцатеричной форме шифруются несколько раз и для разблокировки используются 128-битные, 192-битные или 256-битные ключи, последний из которых является самым надежным. Ключи могут быть заменены паролями, которые мы создаем, что делает пароль единственным прямым способом дешифрования данных. Этот метод лучше всего подходит для шифрования файлов и дисков. Единственное слабое место — это сам пароль, который хакеры могут взломать, если он слабый.Они вряд ли смогут проникнуть в данные с помощью шифрования. Имейте в виду, что, хотя 128-битный AES является надежным ключом шифрования, большинство правительственных постановлений требует, чтобы более сильный 256-битный AES соответствовал определенным стандартам.

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

    Типы компьютерного шифрования

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

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

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

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

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

    Надежное шифрование встроено в современные версии операционных систем Windows и OS X, а также доступно для некоторых дистрибутивов Linux.

    Microsoft BitLocker — это инструмент шифрования диска, включенный в Windows 7 (Enterprise и Ultimate), а также в версии Pro и Enterprise Windows 8.1 и Windows 10. Он предназначен для работы с микросхемой Trusted Platform Module на вашем компьютере, которая хранит шифрование вашего диска ключ.Можно включить BitLocker даже без чипа, но некоторые параметры должны быть настроены в операционной системе, что требует прав администратора.

    Чтобы включить BitLocker, откройте проводник Windows или проводник и щелкните правой кнопкой мыши диск C. Если ваша версия Windows поддерживает BitLocker, в меню отобразится параметр «Включить BitLocker», который вы можете щелкнуть, чтобы включить программу.

    Когда вы включаете BitLocker, Microsoft предлагает вам сохранить копию ключа восстановления.Это важный шаг, потому что вам понадобится ключ восстановления, чтобы разблокировать диск. Без ключа ни вы, ни кто-либо другой не сможете получить доступ к данным. Вы можете распечатать ключ или сохранить его в своей учетной записи Microsoft или в файле. BitLocker также позволяет запрашивать ПИН-код при запуске.

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

    Для Linux вы обычно шифруете диск во время установки операционной системы с помощью такого инструмента, как dm-crypt. Однако сторонние инструменты также доступны для шифрования после установки.

    Сторонние программы шифрования

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

    • VeraCrypt — бесплатное программное обеспечение, которое работает в Windows, Mac OS X и Linux. Он часто получает самые высокие оценки от пользователей и сторонних тестировщиков.
    • AxCrypt — это простая в использовании программа шифрования с бесплатной и премиальной версиями. Он имеет менеджер паролей и функцию совместной работы для обмена зашифрованными данными с другими.
    • Gpg4win использует безопасность военного уровня для шифрования и цифровой подписи файлов и электронной почты.

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

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

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

    Чтобы файлы на USB-устройстве были зашифрованы, используйте программное обеспечение, такое как Microsoft BitLocker To Go или программное обеспечение с открытым исходным кодом, или приобретите USB-накопители с шифрованием, например IronKey, SanDisk и Kanguru.

    Лучшие методы шифрования компьютера

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

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

    При создании кода доступа или PIN-кода используйте случайные цифры и буквы и запомните их. Чем длиннее и сложнее, тем лучше, но не настолько, чтобы вы не могли его запомнить. Вы можете соединить две фразы, например короткие куплеты из двух понравившихся вам песен. Используйте только первую букву каждого слова и замените некоторые символы, такие как ноль вместо O и 3 или знак фунта (#) вместо E.Также используйте смешанные заглавные буквы. Дополнительные советы по созданию надежного пароля можно найти в этой статье Business News Daily.

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

    Если вы используете Wi-Fi, используйте Wi-Fi Protected Access 2 (WPA2), который является формой шифрования для защиты беспроводных подключений.Не используйте Wired Equivalent Privacy (WEP), поскольку это небезопасно ни при каких обстоятельствах.

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

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

    Дополнительная отчетность Ким Линдрос.

    Глава 14: Цезарь Шифр ​​

    14
    ЦЕЗАРЬ ШИФР

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

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

    Криптография и шифрование

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

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

    За книжной полкой есть подсказка.

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

    aolyl pz h jsBl ilopuk Aol ivvrzolsm.

    Если вы знаете шифр, использованный для шифрования сообщения, вы можете расшифровать зашифрованный текст обратно в открытый текст. (Расшифровка противоположна шифрованию.)

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

    Если вы заинтересованы в написании криптографических программ, вы можете прочитать мою книгу Взлом секретных шифров с помощью Python . Его можно бесплатно загрузить с http://inventwithpython.com/hacking/ .

    Как работает шифр Цезаря

    Шифр ​​Цезаря был одним из самых ранних шифров, когда-либо изобретенных. В этом шифре вы шифруете сообщение, заменяя каждую букву в нем «сдвинутой» буквой.В криптографии зашифрованные буквы называются символами , потому что они могут быть буквами, цифрами или любыми другими знаками. Если вы сдвинете букву A на один пробел, вы получите букву B. Если вы сдвинете букву A на два пробела, вы получите букву C. На рис. 14-1 показаны некоторые буквы, сдвинутые на три пробела.

    Рис. 14-1: Шифр ​​Цезаря, сдвигающий буквы на три пробела. Здесь B становится E.

    Чтобы получить каждую сдвинутую букву, нарисуйте ряд квадратов с каждой буквой алфавита.Затем нарисуйте под ним второй ряд прямоугольников, но начинайте буквы на определенное количество пробелов. Когда вы дойдете до конца алфавита открытого текста, вернитесь к A. На рис. 14-2 показан пример с буквами, сдвинутыми на три пробела.

    Рис. 14-2: Весь алфавит со сдвигом на три пробела

    Количество пробелов, на которые вы переносите буквы (от 1 до 26), является ключом в шифре Цезаря. Если вы не знаете ключ (номер, использованный для шифрования сообщения), вы не сможете расшифровать секретный код.Пример на Рисунке 14-2 показывает перевод букв для клавиши 3.

    ПРИМЕЧАНИЕ

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

    Если вы зашифруете текстовое слово HOWDY с ключом 3, то:

    • Буква H становится K.

    • Буква O становится R.

    • Буква W превращается в Z.

    • Буква D становится G.

    • Буква Y становится B.

    Итак, зашифрованный текст HOWDY с ключом 3 становится KRZGB. Чтобы расшифровать KRZGB с помощью ключа 3, мы переходим от нижних ящиков к верхним.

    Если вы хотите включить строчные буквы в отличие от прописных, добавьте еще 26 полей к уже имеющимся и заполните их 26 строчными буквами. Теперь с ключом 3 буква Y превращается в b, как показано на рисунке 14-3.

    Рис. 14-3: Весь алфавит, теперь включая строчные буквы, сдвинут на три пробела

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

    Пример выполнения Caesar Cipher

    Вот пример запуска программы Caesar Cipher, шифрующей сообщение:

    Вы хотите зашифровать или расшифровать сообщение?
    encrypt
    Введите свое сообщение:
    Небо над портом было цвета телевизора, настроенного на мертвый канал.
    Введите номер ключа (1-52)
    13
    Ваш переведенный текст:
    gur FxL noBIr Gur CBEG JnF Gur pByBE Bs GryrIvFvBA, GHArq GB n qrnq punAAry.

    Теперь запустите программу и расшифруйте только что зашифрованный текст:

    Вы хотите зашифровать или расшифровать сообщение?
    расшифровать
    Введите свое сообщение:
    gur FxL noBIr Gur CBEG JnF Gur pByBE Bs GryrIvFvBA, GHArq GB n qrnq punAry.
    Введите ключевой номер (1-52)
    13
    Ваш переведенный текст:
    Небо над портом было цвета телевизора, настроенного на мертвый канал.

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

    Вы хотите зашифровать или расшифровать сообщение?
    расшифровать
    Введите свое сообщение:
    gur FxL noBIr Gur CBEG JnF Gur pByBE Bs GryrIvFvBA, GHArq GB n qrnq punAry.
    Введите ключевой номер (1-52)
    15
    Ваш переведенный текст:
    Rfc qiw YZmtc rfc nmpr uYq rfc amjmp md rcjctgqgml, rslcb rm Y bcYb afYllcj.

    Исходный код для Caesar Cipher

    Введите этот исходный код для программы Caesar Cipher и затем сохраните файл как cipher.py .

    Если после ввода этого кода у вас возникнут ошибки, сравните набранный вами код с кодом книги с онлайн-инструментом сравнения по адресу https://www.nostarch.com/inventwithpython#diff .

    cipher.py

    1. # Caesar Cipher
    2. СИМВОЛЫ = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz’
    3. MAX_KEY_SIZE = len (СИМВОЛЫ)
    4.
    5. def getMode ():
    6. при печати. зашифровать или расшифровать сообщение? ‘)
    8. mode = input (). lower ()
    9. if mode in [‘ encrypt ‘,’ e ‘,’ decrypt ‘,’ d ‘]:
    10. return mode
    11. else:
    12. print (‘Введите либо «encrypt», либо «e», либо «decrypt», либо «d».’)
    13.
    14. def getMessage ():
    15. print (‘ Введите свое сообщение: ‘)
    16. return input ()
    17.
    18. def getKey ():
    19. key = 0
    20. while True:
    21. print (‘Введите номер ключа (1-% s)’% (MAX_KEY_SIZE))
    22. key = int (input ())
    23. if (key> = 1 and key < = MAX_KEY_SIZE):
    24. ключ возврата
    25.
    26. def getTranslatedMessage (режим, сообщение, ключ):
    27. if mode [0] == ‘d’:
    28.key = -key
    29. Translated = »
    30.
    31. для символа в сообщении:
    32. symbolIndex = SYMBOLS.find (symbol)
    33. if symbolIndex == -1: # Символ не найден в SYMBOLS.
    34. # Просто добавьте этот символ без каких-либо изменений.
    35. переведено + = символ
    36. иначе:
    37. # Зашифровать или расшифровать.
    38. symbolIndex + = ключ
    39.
    40. if symbolIndex> = len (SYMBOLS):
    41.symbolIndex — = len (SYMBOLS)
    42. elif symbolIndex <0:
    43. symbolIndex + = len (SYMBOLS)
    44.
    45. переведено + = SYMBOLS [symbolIndex]
    46. return преобразовано
    47.
    48. mode = getMode ()
    49. message = getMessage ()
    50. key = getKey ()
    51. print (‘Ваш переведенный текст:’)
    52. print (getTranslatedMessage (mode, message, key))

    Установка максимальной длины ключа

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

    1. # Caesar Cipher
    2. СИМВОЛЫ = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz’
    3. MAX_KEY_SIZE = len (СИМВОЛЫ)

    MAX_KEY_SIZE — это константа, в которой хранится длина SYMBOLS (52). Эта константа напоминает нам, что в этой программе ключ, используемый в шифре, всегда должен находиться в диапазоне от 1 до 52.

    Решение зашифровать или расшифровать сообщение

    Функция getMode () позволяет пользователю решить, хотят ли они использовать режим шифрования или дешифрования программы:

    5.def getMode ():
    6. while True:
    7. print (‘Вы хотите зашифровать или расшифровать сообщение?’)
    8. mode = input (). lower ()
    9. if mode in [‘encrypt ‘,’ e ‘,’ decrypt ‘,’ d ‘]:
    10. Режим возврата
    11. else:
    12. print (‘ Введите либо «зашифровать», либо «e», либо «расшифровать» или «d». )

    Строка 8 вызывает input (), чтобы позволить пользователю войти в желаемый режим. Затем для этой строки вызывается метод lower (), чтобы вернуть версию строки в нижнем регистре.Значение, возвращаемое функцией input (). Lower (), сохраняется в режиме. Условие оператора if проверяет, существует ли строка, сохраненная в режиме, в списке [‘encrypt’, ‘e’, ​​’decrypt’, ‘d’].

    Эта функция будет возвращать строку в режиме, если режим равен ‘encrypt’, ‘e’, ​​’decrypt’ или ‘d’. Следовательно, getMode () вернет строковый режим. Если пользователь вводит что-то, что не является ‘encrypt’, ‘e’, ​​’decrypt’ или ‘d’, тогда цикл while спросит их снова.

    Получение сообщения от игрока

    Функция getMessage () просто получает сообщение для шифрования или дешифрования от пользователя и возвращает его:

    14.def getMessage ():
    15. print (‘Введите ваше сообщение:’)
    16. return input ()

    Вызов input () комбинируется с return, поэтому мы используем только одну строку вместо двух.

    Получение ключа от плеера

    Функция getKey () позволяет игроку ввести ключ, который он будет использовать для шифрования или дешифрования сообщения:

    18. def getKey ():
    19. key = 0
    20. while True:
    21. print (‘Введите номер ключа (1-% s)’% (MAX_KEY_SIZE))
    22.key = int (input ())
    23. if (key> = 1 and key <= MAX_KEY_SIZE):
    24. Клавиша возврата

    Цикл while гарантирует, что функция продолжает цикл до тех пор, пока пользователь не введет действительный ключ. Действительный ключ здесь — это ключ между целыми значениями от 1 до 52 (помните, что MAX_KEY_SIZE равно 52, потому что в переменной SYMBOLS 52 символа). Затем функция getKey () возвращает этот ключ. Строка 22 устанавливает ключ в целочисленную версию того, что ввел пользователь, поэтому getKey () возвращает целое число.

    Шифрование или дешифрование сообщения

    Функция getTranslatedMessage () выполняет собственное шифрование и дешифрование:

    26. def getTranslatedMessage (режим, сообщение, ключ):
    27. if mode [0] == ‘d’:
    28. key = -key
    29. Translated = »

    Имеет три параметра:

    mode Устанавливает функцию в режим шифрования или режим дешифрования.

    Сообщение

    Это открытый текст (или зашифрованный текст), который нужно зашифровать (или расшифровать).

    Ключ

    Это ключ, который используется в этом шифре.

    Строка 27 проверяет, является ли первая буква в переменной режима строкой ‘d’. Если да, то программа находится в режиме дешифрования. Единственное различие между режимом дешифрования и шифрования состоит в том, что в режиме дешифрования ключу присваивается отрицательная версия самого себя. Например, если ключ — это целое число 22, то режим дешифрования устанавливает его на -22. Причина объяснена в разделе «Шифрование или дешифрование каждого письма» на странице 205.

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

    Поиск пройденных строк с помощью строкового метода find ()

    Чтобы переместить буквы для шифрования или дешифрования, нам сначала нужно преобразовать их в числа. Число для каждой буквы в строке СИМВОЛОВ будет индексом, в котором она появляется.Поскольку буква A находится в SYMBOLS [0], число 0 будет представлять заглавную A. Если бы мы хотели зашифровать это с помощью ключа 3, мы бы просто использовали 0 + 3, чтобы получить индекс зашифрованной буквы: SYMBOLS [3 ] или «D».

    Мы будем использовать строковый метод find (), который находит первое вхождение переданной строки в строке, для которой вызывается метод. Введите в интерактивную оболочку следующее:

    >>> ‘Hello world!’. Find (‘H’)
    0
    >>> ‘Hello world!’. Find (‘o’)
    4
    >>> ‘Hello world!’.find (‘ell’)
    1

    «Hello world!». Find («H») возвращает 0, потому что «H» находится в первом индексе строки «Hello world!». Помните, что индексы начинаются с 0, а не с 1. Код «Hello world!». Find (‘o’) возвращает 4, потому что строчная буква «o» сначала встречается в конце «Hello». Метод find () перестает искать первое вхождение, поэтому второе «o» в «world» не имеет значения. Вы также можете найти строки с более чем одним символом. Строка ‘ell’ начинается с индекса 1.

    Если переданная строка не может быть найдена, метод find () возвращает -1:

    >>> ‘Привет, мир!’.найти (‘xyz’)
    -1

    Вернемся к программе Caesar Cipher. Строка 31 — это цикл for, который повторяет каждый символ в строке сообщения:

    31. для символа в сообщении:
    32. symbolIndex = SYMBOLS.find (symbol)
    33. if symbolIndex == -1: # Символ не найден в SYMBOLS.
    34. # Просто добавьте этот символ без каких-либо изменений.
    35. переведено + = символ

    Метод find () используется в строке 32 для получения индекса строки в символе.Если find () возвращает -1, символ в символе будет просто добавлен в переведенный без каких-либо изменений. Это означает, что любые символы, не входящие в алфавит, например запятые и точки, не будут изменены.

    Шифрование или дешифрование каждого письма

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

    Строка 38 делает это добавление, чтобы получить зашифрованное (или расшифрованное) письмо.

    37. # Зашифровать или расшифровать.
    38. symbolIndex + = ключ

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

    Однако, если это сложение (или вычитание, если ключ отрицательный) приводит к тому, что symbolIndex проходит мимо последнего индекса SYMBOLS, нам нужно перейти к началу списка с 0. Это обрабатывается оператором if, начиная с в строке 40:

    40.если symbolIndex> = len (SYMBOLS):
    41. symbolIndex — = len (SYMBOLS)
    42. elif symbolIndex <0:
    43. symbolIndex + = len (SYMBOLS)
    44.
    45. переведено + = SYMBOLS [symbolIndex]

    Строка 40 проверяет, прошел ли symbolIndex за последний индекс, сравнивая его с длиной строки SYMBOLS. Если да, в строке 41 вычитается длина СИМВОЛОВ из symbolIndex. Если теперь символ symbolIndex отрицательный, то индекс должен перейти на другую сторону строки SYMBOLS.Строка 42 проверяет, является ли значение symbolIndex отрицательным после добавления ключа дешифрования. Если это так, в строке 43 к symbolIndex добавляется длина СИМВОЛОВ.

    Переменная symbolIndex теперь содержит индекс правильно зашифрованного или дешифрованного символа. SYMBOLS [symbolIndex] будет указывать на символ для этого индекса, и этот символ добавляется в конец переведенного в строке 45.

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

    46.возврат переведен

    Последняя строка в функции getTranslatedMessage () возвращает переведенную строку.

    Запуск программы

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

    48. mode = getMode ()
    49. message = getMessage ()
    50. key = getKey ()
    51. print (‘Ваш переведенный текст:’)
    52. print (getTranslatedMessage (mode, message, key) )

    Эти три значения передаются в getTranslatedMessage (), возвращаемое значение которой (переведенная строка) печатается пользователю.

    Техника грубой силы

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

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

    LwCjBA uiG vwB jm xtmiAivB, jCB kmzBiqvBG qA ijACzl.

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

    Добавление режима грубой силы

    Сначала измените строки 7, 9 и 12, которые находятся в функции getMode (), чтобы они выглядели следующим образом (изменения выделены жирным шрифтом):

    5. def getMode ():
    6. while True:
    7. print («Вы хотите зашифровать, расшифровать или перебрать сообщение
    ?»)
    8. mode = input (). Lower ()
    9. если режим в [‘encrypt’, ‘e’, ​​’decrypt’, ‘d’, ‘brute’, ‘b’]:
    10. режим возврата
    11.else:
    12. print (‘Введите либо «зашифровать», либо «е», либо «расшифровать», либо «d», либо
    «грубо» или «b».’)

    Этот код позволяет пользователю выбрать режим грубой силы.

    Далее внесем следующие изменения в основную часть программы:

    48. mode = getMode ()
    49. message = getMessage ()
    50. if mode [0]! = ‘B’:
    51. key = getKey ()
    52. print (‘Ваш переведенный текст:’ )
    53. if mode [0]! = ‘B’:
    54. print (getTranslatedMessage (режим, сообщение, ключ))
    55.иначе:
    56. для ключа в диапазоне (1, MAX_KEY_SIZE + 1):
    57. print (ключ, getTranslatedMessage (‘расшифровать’, сообщение, ключ))

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

    Однако, если пользователь находится в режиме грубой силы, цикл getTranslatedMessage () выполняет итерацию от 1 до MAX_KEY_SIZE (то есть 52). Помните, что функция range () возвращает список целых чисел до второго параметра, но не включая его, поэтому мы добавляем +1.Затем программа распечатает все возможные переводы сообщения (включая ключевой номер, использованный в переводе). Вот пример выполнения этой модифицированной программы:

    Вы хотите зашифровать, расшифровать или перебрать сообщение?
    brute
    Введите свое сообщение:
    LwCjBA uiG vwB jm xtmiAivB, jCB kmzBiqvBG qA ijACzl.
    Ваш переведенный текст:
    1 KvBiAz thF uvA il wslhzhuA, iBA jlyAhpuAF pz hizByk.
    2 JuAhzy sgE tuz hk vrkgygtz, hAz ikxzgotzE oy ghyAxj.
    3 Itzgyx RFD sty gj uqjfxfsy, gzy hjwyfnsyD nx fgxzwi.
    4 Hsyfxw qeC rsx fi tpiewerx, fyx givxemrxC mw efwyvh.
    5 Grxewv pdB qrw eh sohdvdqw, exw fhuwdlqwB lv devxug.
    6 Fqwdvu ocA pqv dg rngcucpv, dwv egtvckpvA ku cduwtf.
    7 Epvcut nbz opu cf qmfbtbou, cvu dfsubjouz jt bctvse.
    8 Сомнения не могут быть приятными, но уверенность абсурдна.
    9 Cntasr lZx mns ad okdZrZms, ats bdqsZhmsx hr Zartqc.
    10 BmsZrq kYw lmr Zc njcYqYlr, Zsr acprYglrw gq YZqspb.
    11 AlrYqp jXv klq Yb mibXpXkq, Yrq ZboqXfkqv fp XYproa.
    12 zkqXpo iWu jkp Xa lhaWoWjp, Xqp YanpWejpu eo WXoqnZ.
    — снип —

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

    Сводка

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

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

    В главе 15 мы создадим Reversegam (также известную как Reversi или Othello). ИИ, который играет в эту игру, намного более продвинут, чем ИИ, который играл в крестики-нолики в главе 10. На самом деле, он настолько хорош, что большую часть времени вы не сможете победить его!

    Лучшие 3 способа разблокировать зашифрованный документ MS Word 2016 в 2020 году

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

    Вариант 1. Как удалить защиту паролем из Word 2016

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

    1. Откройте документ и введите правильный пароль.

    2. Перейдите в раздел «Файл» в верхнем левом углу и нажмите «Информация»> «Защитить документ»> «Зашифровать паролем».

    3. Оставьте поле «Пароль» пустым и нажмите «ОК». В следующий раз, когда вы откроете этот документ, вас не спросят пароль.

    Вариант 2: Как разблокировать документ только для чтения в Word

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

    1. Дважды щелкните документ и выберите «Файл»> «Сохранить как», чтобы сохранить его в другом месте.

    2. Теперь вы можете редактировать файл. Если не работает, продолжайте двигаться дальше.

    3. Переименуйте расширение с .doc или .docx в .zip и нажмите Да для подтверждения.

    4. Откройте Zip-файл в проводнике Windows.

    5. Щелкните папку Word и найдите файл settings.xml. Удалите его из списка. После этого измените расширение обратно на документ DOC.

    Вариант 3: Как расшифровать документ Word без пароля

    Невозможно восстановить пароль из документа Word 2016/2010/2007/2003, если вы его потеряли или забыли, если только вы не прибегнете к использованию профессионального стороннего программного обеспечения, такого как PassFab for Word, которое может разблокировать защищенный паролем документ Word за считанные минуты.Для настройки пользователя предусмотрены 3 типа восстановления пароля: Атака по словарю, Грубая сила с атакой по маске, Атака грубой силы.

    Вот краткое руководство, которое покажет вам, как использовать PassFab для Word.

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

    2. Выберите метод атаки на пароль в соответствии с вашими собственными условиями и нажмите кнопку «Пуск».

    3. Если пароль будет найден, появится всплывающее окно. Идите вперед и используйте правильный пароль, чтобы разблокировать файл Doc.

    Вы также можете посмотреть это видео о том, как удалить пароль Word:

    Заключительные слова

    За исключением указанного выше лучшего инструмента для восстановления пароля Word, PassFab для Office также хорошо справляется с восстановлением пароля Word, пароля Excel и пароля PowerPoint. Если вас интересует этот инструмент для восстановления пароля Office, не стесняйтесь попробовать. Надеюсь, эта статья будет вам полезна.

    .

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

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