Пътешествие в науката криптография
https://bg.khanacademy.org/computing/computer-science/cryptography
Криптографията е наука позната и използвана от много векове. Хората винаги са имали нужда на пренасят някакви съобщение на дълги разстояния, а това крие рискове по пътя. Именно врагът или чужди погледи могат да прочетат или да откраднат изпратеното съобщение. Затова се налага по някакъв начин да се маскира, зашрифова или криптира съобщението. За да не се прочете от враговете или от любопитни, нахални хорица.
Дали чрез математиката, или скрити съобщения в някакво стихотворение, или използване на цветове, размяна на букви, списък е дълъг за използване за криптиране.
Обикновенно има 2 вида криптиране симетрично и асимитрично. И комбинацията от 2те.
Симетрично криптиране значи, че ключът на отгатване на съобщението и заключването на съобщението е един и същ. С този ключ се е криптирало съобщението, което изпращачът е искал да го изпрати, и с този ключ ще го декриптира получателя. Само 1 ключ се ползва в случая.
Съответно тук е важно да се пази ключа и да се даде на достоверния получател. На този, който трябва. Защото така врагът ще отключи съобщението и ще го прочете най-спокойно.
Асиметрично криптиране пък е обратното, ключът не е един и същ. Обикновенно тук единият ключ е публичен и всеки може да го види, да го открадне, да го разбере. Изпращачът си пази своят тайнствен ключ при себе си и никой го няма, освен него. Даже и получателя, защото и той си има свой ключ. Който не го дава на никого.
Не го дава на получателя на съобщението, както е при симетричното криптиране. Използват са по 2 различни ключа.
Един публичен и един свой. Личен. Затова това криптиране е по-бавно. При асимитричното.
Има и алгоритми, които генерират някакви случайни числа или така наречението хеш функции. Има и комбинация от двете и симетрично, и несиметрично.
Та.. въпросът е ....
Как става даването или размяната на ключа, за да не може врагът да не го открадне или поне да го затрудним.
Примерно може да се ползва първо това. И после да се изпрати ключа.
https://bg.wikipedia.org/wiki/Дифи-Хелман
Математическия алгоритъм е следния.
Иван иска да изпрати някакво съобщение на Марийка, Марийка пък също ще иска да праща някакви съобщения на Иван, но се притесняват да НЕ го прочетат други хора освен Марийка и Иван. Затова трябва да бъде тайно това съобщение и го заключват с някакъв ключ номер ХХХ.
Но, ако го изпрати така Марийка на Иван, как ще отключи съобщението без ключа и как ще го прочете Иван, пък може пък по време на изпращането, пощальонът или кой знае някой друг, може да прочете съобщението, ако изпрати заедно със съобщението и ключа с номер ХХХ?
Затова се договарят следното. Ще заключят съобщението с ключ номер ХХХ. Като преди това ще го заключат с техен си ключ.
Иван казва моето съобщение, го заключих с ключ номер, който само аз си го знам, примерно 21 от 23 налични ключа, Марийка също си заключи нейното съобщение с някакъв номер на ключ, примерно 19 от 23 налични ключа. Така да кажем ключовете са 23 ключа налични. Идеално просто число. 23. Разбира се, това е само пример, числото трябва да е по-голямо и по-сложно.
И двамата си намислят и ползват някакъв ключ, примерно ключ номер 13. Просто число е и е по-малко от 23. От наличните ключове.
Иван вади калкулатора и изчислява следното. 13 на степен, числото на ключа, което си е избрал - 21 mod 23, наличните ключове. И получава 16. Mod е деление, което е с остатък.
16 е неговия публичен, наличен всеки го знае, може да го има този ключ. Това вече си го е заключил веднъж с ключ номер 21 и с номер 13.
Той има два ключа 16 публичния си и личния 21. И един все общ 13.
Марийка и тя изчислява същото 13 на 19, числото пък което тя си е намислила, mod 23. 19 числото на ключа, това го знае само Марийка.
И казва на Иван аз пък получих след като въведох в калкулатора 13 на 21 mod 23 - 2.
Това пък е нейния публичен ключ, който иска да го взима. Да го краде, каквото иска да го прави. Защото и тя си заключила веднъж съобщението с ключ номер 19 и с номер 13.
И тя има 2 ключа. Ключ номер 2 и ключ номер 19. И този общия 13. Който всеки също може да го ползва.
Иван знае числото полученото 2, защото Марийка съвсем спокойно му го праща, Марийка също знае неговото получено число. 16.
Те имат или всеки има следните ключове 2, 16 и този всеобщия ключ номер 13.
Защото са публични. Но никой не знае, че всъщност ключът на Иван е 21, а на Марийка е всъщност 19. Първоначално с тези ключове са си заключили своите съобщения. Което съобщение все още е тайно и не се знае с какъв ключ е заключен.
Дотук всеки знае следните ключове с числа 2, 16, 23, 13. Но кой номер е ключът с който ще си пращат съобщение и ще си четат? 23 е броят на ключовете. С кой ключ е заключил първоначално Иван?
И какво прави Иван с ключ номер 2, а Марийка с ключ номер 16?
Взима Иван ключ номер 2 и своя другия ключ 21 и отключва съобщението, което Марийка му го е пратила. Марийка прави същото с нейния ключ 19 и публичния ключ номер 16. Този изпратен от Иван.
Или математически.
Иван изчислява 2 на степен 21, защото 21 е неговия номер на ключ, личния, а 2 е изпратеното от Марийка число на ключа, който всеки знае и отново mod 23, пък Марийка изчислява 16 на степен 19, защото нейния ключ е с номер 19, а пък Иван е изпратил ключ 16, неговия публичен ключ и пак mod 23.
И така най-накрая двамата имат еднакъв ключ. Номер 12. С ключ номер 12 е заключено съобщението.
Отварят съобщението с номер 12 и си четат. И си пращат съобщение тайно.
Дали със следните числа 2, 16, 23, 13 може да се разбере, че съобщението е кодирано с ключ 12.
Примерно 2 или 16, а може би 23 или 13 на степен ХХХХХХ същите числа, 2, 16, а може би 23 или 13 mod = YYY.
Същата формула, да използва, но както се вижда, не се получава лесно. Или може да ползва всичките 23 ключа, затова се избират и се работят с големи числа, за да се затрудни отгатването на ключа.
Препоръчани коментари