Вступ до криптографії цифрового підпису

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

Криптографія цифрового підпису можлива за допомогою двох ключових термінів:

  1. Приватний ключ
  2. Публічний ключ

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

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

Криптографічна архітектура цифрового підпису

Для виконання цифрового підпису за допомогою криптографії необхідно виконати наступне:

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

Шифрування цифрових підписів може здійснюватися у двох основних формах:

1. Цифровий підпис з подальшим шифруванням

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

2. Шифрування з подальшим цифровим підписом

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

Криптографічний цифровий підпис з RSA

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

importCrypto
fromPublicKey importRSA
fromCrypto import Random

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

defrsa_keys():
l=1024
private_key = RSA.generate(l, Random.new().read)
public_key = private_key.publickey()
return private_key, public_key
The above snippet returns the private key and public key.

1. Функція шифрування

defencrypt(public_key, text):
c_text=public_key.encrypt(text, 32)(0) val_cipher=base64.b64encode(c_text)
return val_cipher

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

2. Функція розшифрування

defdecrypt(private_key, val_cipher):
d_cipher = base64.b64decode(val_cipher)
text = private_key.decrypt(d_cipher)
return text

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

3. Впровадження

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

Код:

importCrypto
fromPublicKey importRSA
fromCrypto import Random
importbase64
defrsa_keys():
l=1024
private_key = RSA.generate(l, Random.new().read)
public_key = private_key.publickey()
returnprivate_key, public_key
defencrypt(public_key, plain_text):
c_text=public_key.encrypt(plain_text, 32)(0) val_cipher=base64.b64encode(c_text)
returnval_cipher
defdecrypt(private_key, val_cipher):
d_cipher = base64.b64decode(val_cipher)
text = private_key.decrypt(d_cipher)
returntext
private_key, public_key=rsa_keys()
txt=b"Hello Peers!"
enc_cipher=encrypt(public_key, txt)
print('**'*10)
print("The ecncrypted text is ()".format(enc_cipher))
print('**'*10)
dec_cipher=decrypt(private_key, enc_cipher) #decryption
print("The decrypted cipher text is ()".format(dec_cipher))
print('**'*10)

Вихід:

Як ми бачимо, вхідний текст "Привіт, колеги!", Переданий для шифрування, функція шифрується за допомогою відкритого ключа. Зашифрований шифр перейшов як парам до функції дешифрування, розшифровує оригінальне повідомлення, спільне використання за допомогою приватного ключа приймача. Для виконання цифрового підпису з криптографією знадобиться метод 'sign' і 'verify', знак виконуватиме відправник за допомогою приватного ключа, коли інформація передається одержувачу, функція перевірки виконується за допомогою відкритого ключа.

Заслуги криптографічного цифрового підпису

  1. Підвищити безпеку передачі інформації.
  2. Поліпшити робочий процес більш оцифрованим.
  3. Кращий досвід клієнтів.
  4. Підвищити ефективність бізнесу та юридичну силу.
  5. Зменшує ручне зусилля та економить час.

Дефекти цифрового підпису криптографії

  1. Це вимагає багато часу для перевірки.
  2. Це не захищає від вразливих місць
  3. Інфраструктура та налаштування криптографії не є економічно вигідними.

Висновок

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

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

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

  1. Програмне забезпечення цифрового підпису з робочим
  2. Криптографія проти шифрування | Топ-6 порівняння
  3. Що таке асиметричне шифрування?
  4. Вступ до типів цифрового підпису