По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Полиалфавитный шифр – это криптосистема, в которой используется несколько моноалфавитных шифров. Поэтому нам необходимо иметь как минимум 2 таблицы и шифрование текста происходит следующим образом. Первый символ шифруется с помощью первой таблицы, второй символ – с помощью второй таблицы и так далее. Сильные стороны полиалфавитных шифров заключается в том, что атака по маске и атака частотным криптоанализом здесь не работает, потому что в таких шифрах две разные буквы могут быть зашифрованы одним и тем же символом. Моноалфавитные шифры были популярны вплоть до конца 16 века, так как практически все научились их вскрывать. Необходимо было что-то менять и поэтому в 1585 году был создан шифр Виженера. С этого началась новая эпоха в истории криптографии, которая называется период полиалфавитных шифров, хотя попытки создать подобные криптосистемы были и раньше за пол века до этого, но ничего серьёзного из этого не получилось. Шифр Гронсфельда Данный шифр представляет собой модификацию шифра Цезаря и по своей структуре похож на шифр Виженера. Принцип работы. Берём к примеру текст «РАБОТА» и ключ, например - «136». Ключ в данном случае не одно число, а набор цифр, для понимания можно представить в виде «1,3,6» и не важно какой длины. Далее каждой букве исходного текста присваиваем по 1 цифре ключа, например «Р(1) А(3) Б(6) О(1) Т(3) А(6)» и каждому символу исходного текста прибавляем значение ключа по методу Цезаря. Получается зашифрованный текст «СГЖПХЁ». При расшифровании проделываем ту же логику, как при расшифровании по методу Цезаря. Шифр Виженера Шифр Виженера является самым популярным полиалфавитным шифров за всю историю. Для начала создаётся квадрат Виженера. Ключом в данном методе может быть любой длины и состоять из любых символов, которые есть в таблице 3. Например возьмём ключ «ШИНА» и исходный текст «РАБОТА». Проделываем то же самое, что и при шифре Гронсфельда, к каждой букве исходного текста записываем исходную букву ключа – «Р(Ш) А(И) Б(Н) О(А) Т(Ш) А(И)». Согласно таблице 3 по диагонали находим букву исходного текста, а по вертикали находим букву ключа, их пересечение является зашифрованной буквой, таким образом проделываем для всех букв и шифруем текст, получается «СЙППКЙ». Чтобы расшифровать нам нужно точно так же под каждой буквой закрытого текста записываем букву ключа - «С(Ш) Й(И) П(Н) П(А) К(Ш) Й(И)». По вертикали находим букву ключа и по этой строке находим зашифрованную букву, пересечение с буквой по горизонтальной строки – буква исходного текста, расшифровывает и получаем исходный текст. Атака методом индекса совпадений В данном случае рассмотрим криптоанализ шифра Виженера, его так же можно применять и к шифру Гронсфельда. Нижеприведённый метод криптоанализа называется методом индекса совпадений. Атака методом индекса совпадений состоит из 2 шагов: Определяет длину ключевого слова Дешифрование текста Рассмотрим каждый из этапов: 1. Для того, чтобы найти длину ключа воспользуемся методом индекса совпадений. ИС = 0,0553 Индекс совпадений – это константа, вероятность того, что две наугад выбранные буквы в нормальном осмысленном произвольном русском тексте будут одинаковые.То есть вероятность, что две наугад выбранные буквы будут одинаковые, равна 5,53%. При атаке на шифротекст необходимо ориентироваться именно на эту вероятность. Если имеет шифротекст, зная о нём только то, что он зашифрован шифром Виженера, определяем длину ключа. В шифре Виженера ключом выступает любая последовательность цифр, начиная с 2, потому что если была бы 1 буква, то это просто шифр Цезаря. Итак, начиная с минимума, предполагаем, что длина ключа составляет 2 символа и проверяем это. Выбираем из шифротекста каждую вторую букву, начиная с первой и выписываем отдельно полученную строку. Предполагаемую длину ключа обозначаем k=2, а количество символов в этой строке за L. Далее из алфавита берём каждую букву и считаем для неё индекс совпадений, то есть берём определённую букву и подсчитываем сколько раз она встретилась в этой строке шифротекста (это число обозначаем – n), и так для всех букв. Далее высчитываем индекс совпадений по формуле ИС = n(n-1)/L(L-1) Далее высчитываем индекс совпадений для всего текста путем сложения всех индексов совпадений для всех букв отдельно. Получаем определённое значение и сравниваем его со значением константы. Если индекс совпадений очень близко к константе или больше, то это означает, что подобрана верная длина ключа. Если значение индекса намного отличается от константы, то значит подобранная длина ключа неверная и необходимо взять длину ключа 3 и выбирать из шифротекста каждую третью букву, начиная с первой и выполнять те же действия. Если индекс снова намного отличается от константы берем следующие значения ключа и выполняет те же действия, до тех пор, пока индекс совпадений будет очень близок к константе. 2. Вычислив длину ключевого слова возвращаемся к шифротексту. Разбиваем текст на количество символов символов в ключе, например, при длине ключа k=3, делим текст на 3 части. В первую часть будет входить каждая третья буква, начиная с первой, во вторую часть – каждая третья буква, начиная со второй, и третья часть – каждая третья буква, начиная с третьей. После этого выписываем отдельно каждую часть. Отдельная часть представляет собой обычный шифр Цезаря. Далее дешифруем каждую часть методом частотного криптоанализа. Находим самую частую букву каждой части шифротекста, сравниваем её с буквой «О», так как она в русском алфавите самая частая и сравниваем шифрованную букву с буквой «О». Вычисляем разницу позиций между ними – в ответе получим число, равное ключу и дешифруем с помощью него по шифру Цезаря первую часть шифротекста. Такие же действия проделываем и для остальных частей, затем восстанавливаем части дешифрованного шифротекста и получаем исходный текст. Автокорреляционный метод Данный метод проще в реализации, чем метод индекса совпадений, но последовательность действий точно такая: Определение ключа Дешифрование текста Имея шифротекст, необходимо посчитать количество букв в нём. Желательно весь шифротекст записать в одну строку, затем сделать копию и разместить под ней же. Как и в случае с методом индекса совпадением предполагаем для начала минимальную длину ключа, то есть k=2. Затем в копии строки шифротекста убираем первые два символа и дописываем их в конец строки. Далее ищем количество совпадающих букв между этими двумя строками и находим долю количества совпадений от общего количества символов в тексте по формуле: Y = n/L Y - Доля количества совпадений n – количество совпадений L – количество символов в шифротексте Полученное значение сравниваем со значением контанты индекса совпадений, так же – если это значение намного отличается, предполагаем длину ключа k=3 и делаем ту же процедуру до тех пор, пока доля количества совпадений будет близка к константе индекса совпадений. После нахождения длины ключа проделываем то же самое, что и в методе индекса совпадений и дешифруем текст. Шифр Тритемиуса Шифр Тритемиуса позиционируется усиленным шифром Цезаря и описывается формулой: C = (m+s(p))modN C - номер зашифрованного символа в алфавите m - номер символа открытого текста в алфавите n - количество символов в алфавите s(p) - это ключ, который представляет собой математическую функцию, например: s(p) = 2p+const p - порядковый номер символа в исходном тексте const - любое число, которое задаётся в ручную Точно так же, как в шифре Цезаря каждый символ, перед тем, как шифровать, будет переводится в число, согласно определённой таблице. Первое, что нужно сделать – пронумеровать все символы в исходном тексте, то есть каждый символ получается свой номер в зависимости от своей позиции в тексте. Шифрование происходит посимвольно. Расшифрование происходит похожим способом и описывается формулой: C = (m-s(p))modN Шифр для своего времени очень неплох, потому что не смотря на свою простоту, то есть самая сложная часть – это выбрать функцию s(p). Он демонстрирует достаточно высокий криптоустойчивости, то есть не уступает ни шифру Виженера, ни шифру Гросфельда. Книжный шифр Книжный шифр – не является популярным шифром среди старых шифров, но при грамотном подходе к использованию, обеспечивает криптостойкость на порядки выше, чем шифр Виженера и Гронсфельда. Это симметричный шифр, в котором в качестве ключа используется любая книга на выбор, и процесс шифрования происходит посимвольно. Выбираем первый символ исходного текста и находим его в нашей книге (с любого места). И в качестве зашифрованного символа используем комбинацию из 3 цифр (номер страницы, номер строки, номер символа в строке) и проделываем тоже самое с остальными символами исходного текста. При этом для повышения безопасности при повторении символа в исходном тексте выбирать для него другую комбинацию в книге, чтобы зашифрованные комбинации не повторялись. Чтобы получатель смог расшифровать полученное сообщение должен обладать точно такой же книгой. Поочередно смотрит комбинацию и находит её в данной книге и расшифровывает полученное сообщение. Недостаток этого шифра – это непрактичность и трудоёмкость при шифровании и расшифровании.
img
Nginx - это популярный HTTP-веб-сервер с открытым исходным кодом. Программное обеспечение использует масштабируемую управляемую событиями асинхронную архитектуру, которая обрабатывает запросы по одному за раз. Помимо веб-сервера, он также работает в качестве обратного прокси-сервера, почтового прокси, HTTP-кэша и балансировщика нагрузки. Nginx является частью стека LEMP, набора программного обеспечения с открытым исходным кодом, используемого для разработки веб-приложений и веб-сайтов. LEMP является популярной альтернативой традиционному стеку LAMP. Единственная разница между ними состоит в том, что первый использует Nginx, а второй использует Apache в качестве своего веб-сервера. Мы уже рассказывали как установить Nginx на Windows. В этом руководстве вы узнаете, как установить Nginx на Linux. Установка Nginx Рассмотрим установку Nginx для разных дистрибутивов Linux. Установка Nginx на CentOS 8 Перед любой установкой всегда обновляйте локальный репозиторий, чтобы убедиться, что вы загружаете последнюю версию программного обеспечения. Используйте команду: sudo yum update Вы можете проверить пакет Nginx, прежде чем добавить его в свою систему. Запросите просмотр метаданных RPM, включенных в каждый пакет RPM: sudo yum info nginx Затем установите Nginx на CentOS 8 с помощью команды: sudo yum install nginx Установка Nginx на CentOS 7 Пакеты Nginx доступны в репозиториях EPEL. Если у вас не установлено хранилище EPEL, наберите: sudo yum install epel-release Затем установите Nginx при помощи команды: sudo yum install nginx Если вы устанавливаете пакет из EPEL в первый раз, то yum может предложить вам импортировать ключ GPEL EPEL: Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 Importing GPG key 0x352C64E5: Userid : "Fedora EPEL (7) " Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5 Package : epel-release-7-9.noarch (@extras) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 Is this ok [y/N]: Тут вам нужно нажать y и затем Enter. Установка Nginx на Ubuntu и Debian Пакеты Nginx доступны в репозиториях Ubuntu и Debian по умолчанию. Поэтому для установки сначала обновим список пакетов: sudo apt update А затем установим сам Nginx: sudo apt install nginx Запуск nginx Запуск nginx осуществляется следующей командой: sudo systemctl start nginx Чтобы включать службу при загрузке системы, используйте: sudo systemctl enable nginx Если вы проверите статус сервиса, то в выводе должно быть указано, что Nginx активен - active (running): sudo systemctl status nginx Остановить можно Nginx с помощью команды: sudo systemctl stop nginx Перезапустить Nginx: sudo systemctl restart nginx Перезагрузить файлы конфигурации, не останавливая службу: sudo systemctl reload nginx Настройка firewall Nginx включает в себя служебные файлы firewalld, которые указывают, что служба использует порты 80 (HTTP) и 443 (HTTPS) для веб-трафика. Поэтому вам необходимо открыть и включить эти порты, чтобы разрешить постоянный доступ. Настройка firewall в CentOS Откройте порт HTTP и HTTPS с помощью команд: sudo firewall-cmd --permanent --zone=public --add-service=http --add-service=https sudo firewall-cmd --reload sudo firewall-cmd --list-services --zone=public Настройка firewall в Ubuntu и Debian Если вы используете UFW (Uncomplicated Firewall) для управления брандмауэром, вам необходимо открыть порты, включив профиль Nginx Full, который включает правила для обоих портов: sudo ufw allow 'Nginx Full' Если вы используете nftables, то используйте следующую команду: nft add rule inet filter input tcp dport {80, 443} ct state new,established counter accept Проверка доступа Используйте netstat, чтобы вывести список всех открытых портов и убедиться, что вы успешно открыли 80 и 443: netstat -tulpn Найдите IP-адрес и скопируйте его. Чтобы увидеть IP-адрес вашего сервера, введите в терминале следующую команду: ip addr Затем откройте веб-браузер и вставьте IP-адрес (или имя домена) в строку URL. Откроется страница приветствия Nginx, подтверждающая, что вы успешно установили и настроили сервер. Настройка Nginx Вам не нужно настраивать Nginx после установки. Однако будет полезно знать расположение файлов конфигурации и корневого каталога Nginx на случай, если вам нужно изменить конфигурацию. Если вы хотите изменить файл глобальной конфигурации, вы должны открыть его в текстовом редакторе и применить изменения. Каталог конфигурации Nginx: /etc/nginx Корневой каталог Nginx: /usr/share/nginx/html Основной файл конфигурации: /etc/nginx/nginx.conf Файлы логов Nginx (access.log и error.log): /var/log/nginx/ Теперь вы можете установить корневую директорию вашего домена. Вы можете сделать это в любом месте, которое вы хотите. Наиболее распространенные места включают в себя: /home/user_name/site_name /var/www/site_name /var/www/html/site_name /opt/site_name
img
Что такое хэш-функция? Хэш-функция принимает входное значение, например, строку данных, и возвращает какое-то значение фиксированной длины. Идеальная хэш-функция должна обладать следующими свойствами: она должна быть очень быстрой; она должна иметь возможность возвращать огромный диапазон хэш-значений; она должна генерировать уникальный хэш для каждого входного значения (без коллизий); она должна генерировать различные хэш-значения для одинаковых входных значений; сгенерированные ей хэш-значения не должны иметь ярко выраженной закономерности в своем распределении. Разумеется, идеальных хэш-функций не бывает, однако каждая хэш-функция максимально старается приблизится к идеалу. Учитывая тот факт, что большинство хэш-функций возвращают значения фиксированной длины и из-за этого диапазон значений ограничен, в принципе это ограничение можно игнорировать. Например, количество возможных значений, которые может вернуть 256-битная хэш-функция, соразмерно количеству атомов во Вселенной. В идеале хэш-функция должна работать без коллизий, иными словами ни одна пара различных входных значений не должна генерировать одно и то же значение хэш-функции. Это является важным условием особенно для криптографических хэш-функций, поскольку коллизии хэшей рассматриваются как уязвимости. И наконец, хэш-функция должна генерировать различные хэш-значения для любого входного значения без возможности их прогнозирования. Например, возьмем следующие два очень похожих предложения: 1. "The quick brown fox." 2. "The quick brown fax." А теперь сравним хэш-значения MD5, сгенерированные для каждого предложения: 1. 2e87284d245c2aae1c74fa4c50a74c77 2. c17b6e9b160cda0cf583e89ec7b7fc22 Для двух похожих предложений были сгенерированы два мало похожих хэша. Такое свойство является полезным как для проверки, так и для криптографии. Это и есть закон распределения: хэш-значения всех входных данных должны быть равномерно распределены без возможности прогнозирования по всему диапазону возможных хэш-значений. Популярные хэш-функции Существует несколько широко используемых хэш-функций. Все они были разработаны математиками и программистами. В процессе их дальнейшего изучения было выявлено, что некоторые из них имеют недостатки, однако все они считаются приемлемыми для не криптографических приложений. MD5 Хэш-функция MD5 генерирует 128-битное хэш-значение. Изначально она была разработана для использования в криптографии, однако со временем в ней были обнаружены уязвимости, вследствие чего для этой цели она больше не подходит. И тем не менее, она по-прежнему используется для разбиения базы данных и вычисления контрольных сумм для проверки передачи файлов. SHA-1 SHA расшифровывается как Secure Hash Algorithm. SHA-1 – это первая версия алгоритма, за которой в дальнейшем последовала SHA-2. В то время как MD5 генерирует 128-битный хэш, SHA-1 создает 160-битный (20 байт). Если представить это число в шестнадцатеричном формате, то это целое число длиной в 40 символов. Подобно MD5, этот алгоритм был разработан для криптографических приложений, но вскоре в нем также были найдены уязвимости. На сегодняшний день он считается более устойчивым к атакам в сравнении с MD5. SHA-2 Вторая версия алгоритма, SHA-2, имеет множество разновидностей. Пожалуй, наиболее часто используемая – SHA-256, которую Национальный институт стандартов и технологий (NIST) рекомендует использовать вместо MD5 и SHA-1. Алгоритм SHA-256 возвращает 256-битное хэш-значение, что представляет собой шестнадцатеричное значение из 64 символов. Хоть это и не самый идеальный вариант, то текущие исследования показывают, что этот алгоритм значительно превосходит в безопасности MD5 и SHA-1. Если рассматривать этот алгоритм с точки зрения производительности, то вычисление хэша с его помощью происходит на 20-30% медленнее, чем с использованием MD5 или SHA-1. SHA-3 Этот алгоритм хэширования был разработан в конце 2015 года и до сих пор еще не получил широкого применения. Этот алгоритм не имеет отношения к тому, что использовался его предшественником, SHA-2. Алгоритм SHA3-256 – это алгоритм с эквивалентной применимостью более раннего алгоритма SHA-256, причем вычисления первого алгоритма занимают немного больше времени, чем вычисления второго. Использование хэш-значений для проверки Как правило, хэш-функции используются для проверки правильности передачи данных. Одним из таких применений является проверка сжатых коллекций файлов, таких как архивные файлы .zip или .tar. Имея архив и его ожидаемое хэш-значение (обычно называемое контрольной суммой), можно выполнить собственное вычисление хэш-функции, чтобы убедиться в целостности полученного вами архива. Например, можно сгенерировать контрольную сумму MD5 для tar-файла в Unix, используя следующие команды: tar cf - files | tee tarfile.tar | md5sum - Чтобы получить хэш MD5 для файла в Windows, используйте команду PowerShell Get-FileHash: Get-FileHash tarfile.tar -Algorithm MD5 Сгенерированную контрольную сумму можно разместить на сайте загрузки рядом со ссылкой на скачивание архива. Получатель, скачав архив, может проверить правильность его получения, выполнив следующую команду: echo '2e87284d245c2aae1c74fa4c50a74c77 tarfile.tar' | md5sum -c где 2e87284d245c2aae1c74fa4c50a74c77 - сгенерированная контрольная сумма, которая была размещена. При успешном выполнении вышеуказанной команды появится статус OK, как показано ниже: echo '2e87284d245c2aae1c74fa4c50a74c77 tarfile.tar' | md5sum -ctarfile.tar: OK
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59