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

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

алгоритми

За онези от вас, които смятат, че алгоритмите са свързани само с компютърните науки, грешите. Алгоритъмът е метод или формула за решаване на проблем. И когато казвам проблем, това може да бъде всеки тип проблем, може да е формули за математика, наука или дори компютърна основа. Нека ви дам просто

Пример:

(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 тези неща, за да получите точна представа какво точно се случва тук.

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

Криптографията е изкуство да се пишат кодове по нечетим за човека начин. Това е метод за съхранение и предаване на данни в определена форма, така че само тези, за които са предназначени, могат да ги четат и обработват. Можете да кажете, че Криптографията е близък братовчед на дисциплините криптология и криптоанализа.

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

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

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

Monoalphabetic шифър използва една и съща замяна в цялото съобщение. Например, ако знаете, че буквата A е шифрована като буквата K, това ще важи за цялото съобщение. Тези видове съобщения могат да бъдат пропукани с помощта на честотен анализ, образовани предположения или опит и грешка.

1. Шифър за по-ниска скорост

Шифърът на Цезар е един от най-простите (и най-лесните напукани) методи за криптиране. Това е заместващ шифър, който включва замяна на всяка буква от тайното съобщение с различна буква от азбуката, която е фиксиран брой позиции по-нататък в азбуката.

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

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

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

Плетен текст : Това е тайно съобщение

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

2. Atbash Cipher

Шифърът Atbash е много специфичен случай на заместващ шифър, при който буквите на азбуката са обърнати. С други думи, всички както са заменени със Zs, всички B са заменени с Ys и т.н.

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

Пример:

Плетен текст : Това е тайно съобщение

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

Ключовият шифър е идентичен с шифъра на Цезар, с изключение на това, че използваната азбука на заместване може да бъде представена с ключова дума.

За да създадете азбука за заместване от ключова дума, първо запишете азбуката. По-долу запишете ключовата дума (пропускане на дублиращи се букви), последвана от останалите неизползвани букви от азбуката.

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

KEYWORDABCFGHIJLMNPQSTUVXZ

За да шифровате съобщение в неясен текст, вие преобразувате всички букви от горния ред в съответната им буква в долния ред (от A до K, B до E и т.н.).

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

4. Pigpen / масонски шифър

Пигментният шифър (понякога наричан масонски шифър или шифър на масонството) е прост заместващ шифър за обмен на букви за символи на базата на мрежа. Схемата е разработена и използвана от масоните в началото на 1700 г. за водене на записи и кореспонденция. Примерният ключ показва един начин буквите да бъдат присвоени към мрежата.

Б) Полиалфабетни шифри:

В полиалфабетен шифър замяната може да се промени в цялото съобщение. С други думи, буквата А може да бъде кодирана като буквата К за част от съобщението, но по-късно тя може да бъде кодирана като буквата W.

Препоръчителни курсове

  • Обучение по XML
  • CCNA изпитателен курс
  • Цялостно UNIX & Linux OS обучение
  • HTML 5 пакет за обучение

1. Vigenere Cipher

В шифър на Цезар всяка буква от азбуката е изместена по определен брой места; например в шифър на Цезар от смяна 3 А ще стане D, B ще стане E и така нататък. Шифърът Vigenere се състои от използване на няколко шифъра Цезар в последователност с различни стойности на изместване.

За да шифровате, може да се използва таблица с азбуки, наречена tabula recta, площад Vigenere или таблица Vigenere. Състои се от азбуката, изписана 26 пъти в различни редове, като всяка азбука се измества циклично вляво в сравнение с предишната азбука, съответстваща на 26-те възможни цезарови шифъра. В различни точки от процеса на криптиране, шифърът използва различна азбука от един от редовете. Използваната азбука във всяка точка зависи от повтарящата се ключова дума.

Например, да предположим, че незабележимият текст, който трябва да бъде криптиран, е:

ATTACKATDAWN

Лицето, изпращащо съобщението, избира ключова дума и я повтаря, докато не съвпада с дължината на очевидния текст, например, ключовата дума „LEMON“:

LEMONLEMONLE

Всяка буква се кодира чрез намиране на пресечната точка в мрежата между буквата на обикновения текст и писмото с ключова дума. Например, първата буква на незабележимия текст, A, е шифрована с помощта на азбуката в ред L, която е първата буква на ключа. Това става, като се разгледа буквата в ред L и колона A на площада Vigenere, а именно L. По подобен начин за втората буква на обикновения текст се използва втората буква на ключа; буквата в ред E и колона T е X. Останалата част от обикновения текст е шифрована по подобен начин:

Плетен текст : ATTACKATDAWN

Ключ : LEMONLEMONLE

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

Намирането на позицията на буквата с шифротекст в ред на таблицата и след това вземане на етикета на колоната, в която се появява като незабележим текст, извършва декриптиране. Например в ред L шифротекстът L се появява в колона A, която се приема като първа буква в буквален текст. Търсенето на X в ред E на таблицата дешифрира втората буква; тя се появява в колона Т, която е приета като буква в ясен текст.

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

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

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

Като пример, файловете с картини обикновено имат много неизползвано място в тях. Това пространство може да се използва за изпращане на скрити съобщения. Ако направите проучване на криптирането, може да видите термина стеганография, използван при повод. Това обаче не е истинско криптиране (макар че все още може да бъде доста ефективно) и като такова го споменавам тук само за пълнота.

Така че, ако искате да започнете да практикувате криптология, най-добрият начин да започнете с това е да започнете да решавате алгоритми и Ciphertext заедно със Steganography. Въпреки че стеганографията може да изглежда лесна и не е вярно криптиране, тя все още е едно от най-използваните криптиране, когато става въпрос за основите и когато трябва да кодирате нещо за много малко време и по най-добрия възможен начин.

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

Препоръчителни статии

Ето няколко статии, които ще ви помогнат да получите повече подробности за алгоритмите и криптографията, така че просто преминете през линка.

  1. Структури на данни и алгоритми Интервю въпроси | Най-полезен
  2. 8 страхотни алгоритъм въпроси за интервю и отговор
  3. Най-добър език за програмиране на избор за изучаване на алгоритми
  4. 10 най-добри структури на данни и алгоритми C ++ | Основи