Криптографія. Що це

 Криптографія, що лежить в основі криптовалют


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


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


Цифрові підписи


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


Спочатку згадаємо, що таке підпис у реальному житті та які його функції? Уявіть собі документ, який ви підписали:


Підпис має доводити, що саме ви підписали документ.

Ніхто інший не зможе підробити та скопіювати ваш підпис.

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

Однак у реальному світі навіть складний підпис може бути підроблений, а 100% перевірити підписи на око — ненадійно.


Криптографія дає вирішення проблеми шляхом «цифрових підписів», що створюються за допомогою «ключів».


Але насамперед доведеться заглибитися в основи криптографії.


Що таке криптографія у валютах?


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


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


У сучасних технологіях широко використовуються три форми шифрування:


симетрична криптографія,

асиметрична криптографія,

хешування.


Симетрична криптографія


Симетрична криптографія – це найвідоміший криптографічний метод. Концепція дуже проста, якщо розбити її на кроки, то вийде таке:


Є повідомлення А, яке ви хочете надіслати своєму другові.

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

Ваш друг отримує шифрований текст Б.

Потім він розшифровує прихований текст, використовуючи той самий ключ і отримує А.


Існує два типи симетричної криптографії:


Поточні шифри.

Блокові шифри.


Що таке потокові шифри?


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


Використовуються різні принципи потокового шифрування, AND, OR або XOR (що виключає АБО).


Розглянемо, наприклад, одноразовий блокнот за абеткою.

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


Припустимо, що ми надішлемо повідомлення Бобу «ЧУРО ПОБАЧИМОСЯ». Але ми не хочемо, щоби хтось перехоплював наше повідомлення. Так що ми з Бобом вирішили використовувати одноразовий блокнот, який виглядає так:


«Г Н П В К У О Х З Ю Т Е М»


Як бачимо, запис має стільки символів, як і повідомлення, т. е. 13.


Це дуже простий приклад застосування одноразового блокнота, щоб краще зрозуміти його принципи.

З'являється ще одна річ: кожна літера з алфавіту замінюється числовим еквівалентом.


А 0 До 11 Х 22

Б 1 Л 12 Ц 23

2 М 13 Ч 24

Р 3 Н 14 Ш 25

Д 4 Про 15 Щ 26

Е 5 П 16 Ъ 27

Е 6 Р 17 Ы 28

Ж 7 З 18 Ь 29

З 8 Т 19 Е 30

І 9 У 20 Ю 31

Й 10 Ф 21 Я 32


У процесі шифрування буде 6 одиниць даних:


OM вихідне повідомлення: оригінал, який ми написали “НЕЗАБЕЗПЕЧНО”;

NOM числове вихідне повідомлення (його цифровий еквівалент);

OTP одноразовий блокнот;

NOTP числовий одноразовий блокнот;

NCT числовий шифрований текст, який є сумою числового вихідного повідомлення та одноразового блокнота. Якщо сума більша, віднімається 33 у разі, за кількістю літер в алфавіті з 0.

CT шифрований текст, який є алфавітним еквівалентом пункту вище.


Почнемо по порядку.


OM NOM OTP NOTP NCT CT

З 18 Г 3 21 Ф

До 11 Н 14 25 Ш

О 15 П 16 31 Ю

Р 17 2 19 Т

О 15 К 11 26 Щ

У 20 У 20 7 Ж

У 2 Про 15 17 Р

І 9 Х 22 31 Ю

Д 4 З 8 12 Л

І 9 Ю 31 7 Ж

М 13 Т 19 32 Я

З 18 Е 30 15

Я 32 М 13 12 Л

Так працює цей процес шифрування, пропонуючи псевдовипадкову послідовність букв.


Розшифровка


Процес дешифрування відбувається за тим самим ключем. Той, хто отримав повідомлення ФШЮТЩЖРЮЛЖЯОЛ, має:


зашифровану фразу,

загальний ключ,

таблиці з числовими еквівалентами.


Отже, як Боб розшифрує повідомлення за допомогою цих даних?


Він відобразить числові значення як ключа, так і зашифрованого повідомлення, щоб отримати NCT та NOTP.

Потім він обчислить NOM (числове значення вихідного повідомлення), виконавши цей розрахунок: NOM = NCT NOTP mod 33.

Він використовуватиме таблицю зіставлення щоб одержати відповідних букв.


Що таке блочне шифрування?


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


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


Найпростіший метод підстановки Атбаш, коли алфавіт просто перевертається: А->Я і навпаки. Також відомий Шифр Цезаря, коли буква набуває значення що стоїть за нею (або віддаленої на Х).


Наприклад, слово ВАК -> ВБЛ, зрушене на 1:


А Б В Г Д І Ї Ж З І Й К Л

Б В Г Д І Ї Ж З І Й К Л А

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


Плюси та мінуси симетричної криптографії

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


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


Але проблем кілька:


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

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

Через ці вразливості з симетричним ключем було необхідне рішення, і в 1970-х роках воно нарешті настало.


Асиметрична криптографія


У 1970 році британський математик та інженер Джеймс Елліс дійшов до ідеї, заснованої на простій концепції. Що, якщо шифрування та дешифрування – зворотні операції на основі двох різних ключів? У традиційній, тобто симетричній криптографії, повідомлення має бути відправлене разом із ключем, щоб інша сторона розшифрувала повідомлення.


Елліс припустив, що одержувач повідомлення не може бути пасивною стороною, і їм потрібно було мати «замок» та «ключ» для себе. Замок можна було відправити будь-кому у світі, але ключ повинен залишатися приватним.


Була теорія, а практичне застосування цієї теорії через два блискучі принципи:


Одностороння функція з потайним входом: легко перейти від одного стану до іншого, але повернутися до вихідної позиції без ключа неможливо; До - відкритий ключ, до - приватний. Ключі математично пов'язані один з одним через функцію K = f (k). Простий приклад – множення великих чисел. Наприклад, у вас є числа 1847 і 19837. Їхній твір 36638939. Однак, якщо ви просто знаєте це число, ви не знайдете жодного множника. Потрібно знати хоча б один, щоб дізнатись другий.

Обмін ключами Діффі-Хеллмана, Протокол Діффі-Хеллмана. Це обмін ключами незахищеними каналами зв'язку. Схожа ситуація для наочності: Аліса та Боб живуть у країні, де немає таємниці листування. Але хлопці дуже хочуть зберегти свою таємницю. Тоді Аліса відправляє замкнений ящик із листом Бобу. Боб його отримує, вішає свій замок, відправляє Алісі посилку з двома замками: старим та новим. Аліса одержує, знімає свій замок, відправляє Бобу. Він отримує, відкриває замок своїм ключем, відкриває скриньку та читає лист. Так ні до Аліси, ні до Боба не потрапляли чужі ключі, ніхто не вкрав би їх дорогою.

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


Біткоїн, Ефіріум та інші використовують криптографію на еліптичних кривих.


Будь-яка еліптична крива задовольняє рівняння Y^2 = x^3 + ax + b, де (x, y) - точка на кривій, a і b - постійні.


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


Як відбувається перевірка цифрового підпису у криптовалютах?


На еліптичних кривих саме біткоін працює в такий спосіб.


Перш ніж подивитися процес, наведемо деякі змінні та їх тлумачення:


Частковий ключ = d.

Повідомлення = z.

Публічний ключ = Q.

G - Постійна точка на графіку.

"k" - це випадкове число, яке буде генеруватися автоматично для кожного унікального підпису.

"n" - ще одна константа.

Математична перевірка (не сильно заглиблюючись):

Підписання повідомлення

Відкритий ключ Q = dG. (Неможливо отримати секретний ключ від Q і G, тому що поділ на неприпустимо).


Тепер ми помножимо G на випадкове число k і побудуємо цю точку на графіку. Координати цієї точки є (x, y). тобто (х, у) = kG


Потім ми визначаємо два значення r і s такі, що:


r = x mod n.


s = (z + rd) k ^ -1 mod n


Ми генеруємо r та s, щоб задати координати нашого підпису.


Отже, ми надсилаємо точку (r, s) для перевірки.


Перевірка повідомлення


Верифікатори проведуть просте рівняння:


z*s^-1*G+r*s^-1*Q


Значення рівняння дасть точку (x, y).

Тепер верифікатори можуть легко порівняти координати x. Вони не мають координати x, заданої безпосередньо від відправника, але мають значення r і n.


І оскільки ми вже знаємо, що r = x mod n вони можуть просто вирішити рівняння для x.


Якщо значення x збіглося, підпис перевірено.


Причина, через яку криптовалюти обрали еліптичні криві, це економія бітів та більша ефективність.


Як ключі працюють у блокчейні?


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


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


Крім того, як ви можете бачити, закритий ключ довше загальної адреси.


Отже, як відкритий ключ виводиться із закритого ключа?


Давайте розглянемо приклад біткоїну.


Припустимо, Аліса хоче згенерувати свої ключі, щоб вона могла здійснювати транзакції блокчейном. Ось що вона робитиме:


По-перше, вона генеруватиме 256-бітний закритий ключ. Вона може зробити це вручну, або використовувати автогенератор.

Потім їй потрібно згенерувати публічну адресу: алгоритм усередині гаманця зробить це автоматично (кроки нижче).

Приватний ключ буде аналізуватись за допомогою алгоритму хешування SHA 256, щоб отримати хеш.

Потім хеш розбиратиметься через функцію RIPE MD 160, і буде створено новий хеш, і його копія буде збережена (ЧАСТИНА А).

Потім хеш буде хешований через SHA 256 для генерації іншого хеш.

Потім новий хеш знову буде хешований через SHA 256 для генерації іншого хеш. Перші 7 біт цього хеша буде збережено (ЧАСТИНА B).

ЧАСТИНА А і ЧАСТИНА B будуть зведені разом, і результатом буде публічна адреса.


Як працює процес підпису (спрощено)?


Припустимо, Аліса хоче надіслати 500 BTC Бобу. Вона виконає такі кроки:


Вона створить транзакцію та підпише її своїм особистим ключем.

Вона відправить транзакцію на публічну адресу Боба.

Потім Боб може розшифрувати повідомлення, використовуючи відкритий ключ Аліси, щоб переконатися, що насправді Аліса послала йому біткоїни,

Угода вважається завершеною.

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

Криптографія. Що це


Отправить комментарий

0 Комментарии