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

Алгоритмы и криптография

Алгоритмы

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

Пример:

(A + b) 2 = a 2 + 2ab + b 2

Или это может быть как:

Начисленная сумма = основная сумма (1 + ROI * 100 * время)

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

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

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

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

Алгоритмы сложения слева направо:

Начиная слева, добавьте столбец за столбцом и скорректируйте результат.

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

200 плюс 400 - это 600, но (глядя на следующий столбец) мне нужно это откорректировать, поэтому напишите 7. Затем 60 и 80 - это 140, но это требует корректировки, поэтому напишите 5. Теперь 8 и 3 - это 11, писать больше нечего. Эта методика легко развивается на основе опыта манипуляций, таких как блоки 10 и деньги, а также игры на бирже или обмене, и она соответствует шаблонам слева направо, изученным для чтения и письма.

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

криптография

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

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

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

А) Моноалфавитные шифры:

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

1. Ceaser Cipher

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

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

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

В этом примере каждая буква в текстовом сообщении была сдвинута на 3 буквы вниз в алфавите.

Открытый текст : это секретное сообщение

Зашифрованный текст : wklv lv d vhfuhw phvvdjh

2. Атбаш Шифр

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

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

Пример:

Открытый текст : это секретное сообщение

Зашифрованный текст : Gsrh rh z hvxivg nvhhztv

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

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

АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЭЮЯ

KEYWORDABCFGHIJLMNPQSTUVXZ

Чтобы зашифровать текстовое сообщение, необходимо преобразовать все буквы из верхнего ряда в соответствующие им буквы в нижнем ряду (от A до K, от B до E и т. Д.).

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

4. Свинья / Масонский Шифр

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

Б) Полиальфабетические шифры:

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

Рекомендуемые курсы

  • Тренинг по XML
  • Экзаменационный курс CCNA
  • Полное обучение ОС UNIX и Linux
  • Учебный комплект по HTML 5

1. Vigenere Cipher

В Цезарном Шифре каждая буква алфавита смещена вдоль некоторого числа мест; например, в шифре Цезаря сдвига 3 A станет D, B станет E и так далее. Шифр Vigenere состоит из нескольких последовательных шифров Цезаря с различными значениями сдвига.

Для шифрования можно использовать таблицу алфавитов, называемую tabula recta, Vigenere square или Vigenere table. Он состоит из алфавита, записанного 26 раз в разных строках, каждый алфавит циклически сдвинут влево по сравнению с предыдущим алфавитом, что соответствует 26 возможным шифрам Цезаря. На разных этапах процесса шифрования шифр использует другой алфавит из одной из строк. Алфавит, используемый в каждой точке, зависит от повторяющегося ключевого слова.

Например, предположим, что открытый текст для шифрования:

ATTACKATDAWN

Лицо, отправляющее сообщение, выбирает ключевое слово и повторяет его до тех пор, пока оно не будет соответствовать длине открытого текста, например, ключевое слово «LEMON»:

LEMONLEMONLE

Каждая буква кодируется путем нахождения пересечения в сетке между буквой открытого текста и буквой ключевого слова. Например, первая буква открытого текста, A, зашифрована с использованием алфавита в строке L, которая является первой буквой ключа. Это делается путем просмотра буквы в строке L и столбце A квадрата Вигенера, а именно L. Аналогично, для второй буквы открытого текста используется вторая буква ключа; буква в строке E и столбце T - X. Остальная часть открытого текста шифруется аналогичным образом:

Открытый текст : ATTACKATDAWN

Ключ : LEMONLEMONLE

Зашифрованный текст : LXFOPVEFRNHR

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

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

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

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

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

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

Первый источник изображения: pixabay.com

Рекомендуемые статьи

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

  1. Структуры данных и алгоритмы Вопросы для интервью | Наиболее полезный
  2. 8 Потрясающий Алгоритм Интервью Вопросы и Ответы
  3. Лучший выбор языков программирования для изучения алгоритмов
  4. 10 лучших структур данных и алгоритмов C ++ | основы