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

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

Алгоритми

Тим із вас, хто вважає, що алгоритми пов'язані лише з інформатикою, ви помиляєтесь. Алгоритм - метод або формула розв’язання задачі. І коли я кажу про проблему, це може бути будь-який тип проблеми, може бути, це математичні, наукові формули або навіть комп'ютерні. Дозвольте дати вам простий

Приклад:

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

Або це може бути так:

Нарахована сума = Основна (1 + ROI * 100 * раз)

Так! Все, що є формулою, можна сприймати як алгоритм. Алгоритм - це набір правил розв’язання проблеми, які при правильному виконанні даватимуть правильну відповідь кожного разу. Алгоритми, як правило, включають повторення серії кроків знову і знову, як в алгоритмах запозичення і перенесення, так і в тривалих алгоритмах множення і ділення. Алгоритми включають різноманітні складання, віднімання, множення та ділення.

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

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

Ось, ось декілька прикладів алгоритмів додавання, які розпочнуть роботу і дадуть уявлення про алгоритми. Почнемо з базової математики:

Алгоритми додавання зліва направо:

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

Для деяких людей цей процес стає настільки автоматичним, що вони починаються зліва та записують стовпчик відповідей за стовпцями, коригуючи, коли вони йдуть, не записуючи жодних проміжних кроків. Якщо їх попросять пояснити, вони кажуть щось подібне:

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

Тепер деякі люди можуть перебратися з цього приводу. Тож, можливо, вам знадобиться викласти цей матеріал в Google, щоб отримати точне уявлення про те, що саме тут відбувається.

Криптографія

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

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

Шифрування застосовується вже багато тисяч років. Наступні коди та шифри можна вивчити та використовувати для шифрування та дешифрування повідомлень вручну:

А) Моноалфабетні шифри:

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

1. Шифр ​​Ceaser

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

Оскільки кожна літера в повідомленні має прямий переклад на інший лист, частотний аналіз може бути використаний для розшифровки повідомлення. Наприклад, буква Е - найчастіше вживана літера в англійській мові.

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

У цьому прикладі кожна буква в повідомленні прямого тексту зміщена на 3 букви в алфавіті.

Простий текст : Це таємне повідомлення

Шифротекст : wklv lv d vhfuhw phvvdjh

2. Шифр ​​Атбаш

Шифр Atbash - це дуже специфічний випадок шифру заміщення, де букви алфавіту зворотні. Іншими словами, всі як замінені на Zs, всі B замінені на Ys тощо.

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

Приклад:

Простий текст : Це таємне повідомлення

Шифротекст : Gsrh rh z hvxivg nvhhztv

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

Щоб створити алфавіт заміни з ключового слова, спочатку записуйте алфавіт. Знизу ви записуєте ключове слово (пропускаючи повторювані літери), а за ним - інші невикористані літери алфавіту.

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

KEYWORDABCFGHIJLMNPQSTUVXZ

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

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

4. Пігпен / масонський шифр

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

B) Поліальфабетичні шифри:

У поліалфабетному шифрі заміна може змінюватися протягом усього повідомлення. Іншими словами, літера А може бути кодована як літера К для частини повідомлення, але пізніше вона може бути закодована як літера W.

Рекомендовані курси

  • Навчання XML
  • Навчальний курс іспиту CCNA
  • Повне навчання UNIX та Linux для ОС
  • Навчальний комплект HTML 5

1. Вігенер Шифр

У шифрі Цезаря кожна літера алфавіту зміщена вздовж деякої кількості місць; наприклад, в шифрі Цезаря зсуву 3 A стане D, B стане E і так далі. Шифр Vigenere складається з використання декількох шифрів Цезаря в послідовності з різними значеннями зсуву.

Для шифрування може використовуватися таблиця алфавітів, що називається tabula recta, квадрат Vigenere або таблиця Vigenere. Він складається з алфавіту, виписаного 26 разів різними рядками, кожен алфавіт циклічно зміщується вліво порівняно з попереднім алфавітом, що відповідає 26 можливим шифрам Цезаря. У різних точках процесу шифрування шифр використовує інший алфавіт від одного з рядків. Алфавіт, який використовується в кожному пункті, залежить від ключового слова, що повторюється.

Наприклад, припустимо, що простим текстом, який потрібно зашифрувати, є:

ATTACKATDAWN

Особа, яка надсилає повідомлення, вибирає ключове слово і повторює його, поки воно не збігається з довжиною простого тексту, наприклад, ключовим словом "ЛЕМОН":

ЛЕМОНЛЕМОНЛ

Кожен лист кодується знаходженням перетину в сітці між простою буквою та літерою ключового слова. Наприклад, перша літера простого тексту A шифрується за допомогою алфавіту в рядку L, який є першою літерою ключа. Це робиться, переглядаючи букву в рядку L та стовпчик А квадрата Віґенре, а саме L. Аналогічно для другої літери простого тексту використовується друга літера ключа; літера в рядку Е і стовпці Т дорівнює X. Решта простого тексту зашифрована аналогічно:

Простий текст : ATTACKATDAWN

Ключ : ЛЕМОНЛЕМОНЛ

Шифротекст : LXFOPVEFRNHR

Виявляючи позицію букви шифротексту в рядку таблиці, а потім приймаючи мітку стовпця, в якій вона відображається як простий текст, виконують розшифровку. Наприклад, у рядку L в колонці A з’являється шифротекст L, який прийнятий за першу букву в прямому тексті. Шукаючи X у рядку E таблиці, розшифровує другу букву; вона відображається у колонці T, яка приймається як лист у простому тексті.

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

Стеганографія

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

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

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

Перше джерело зображення: pixabay.com

Рекомендовані статті

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

  1. Структури даних та алгоритми Інтерв'ю Питання | Найкорисніше
  2. 8 дивовижних алгоритмів інтерв'ю на запитання та відповіді
  3. Кращі мови вибору програмування для вивчення алгоритмів
  4. 10 найкращих структур даних та алгоритмів C ++ | Основи