Введение в криптографию цифровой подписи

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

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

  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 и текст в качестве параметров для функции шифрования. Функция encrypt выполнит шифрование с открытым ключом и сгенерирует шифр, сгенерированный шифр возвращается при вызове функции.

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)

Выход:

Как мы видим, входной текст «Hello Peers!», Переданный функции шифрования, зашифрован с использованием открытого ключа. Зашифрованный шифр, передаваемый в качестве параметра функции дешифрования, дешифрует исходное сообщение, передаваемое с использованием личного ключа получателя. Для выполнения цифровой подписи с помощью криптографии потребуется метод «подписать» и «проверить», подпись будет выполняться отправителем с использованием личного ключа, когда информация передается получателю, функция проверки выполняется с использованием открытого ключа.

Достоинства криптографии Цифровая подпись

  1. Повысить безопасность передачи информации.
  2. Улучшение рабочего процесса более цифровым.
  3. Лучший клиентский опыт.
  4. Повышение эффективности бизнеса и юридической силы.
  5. Уменьшает ручное усилие и экономит время.

Недостатки криптографии Цифровая подпись

  1. Это требует много времени для проверки.
  2. Он не защищает от уязвимостей
  3. Инфраструктура и настройка криптографии не являются экономически выгодными.

Вывод

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

Рекомендуемая статья

Это руководство по криптографии цифровой подписи. Здесь мы обсуждаем архитектуру криптографии цифровой подписи вместе с реализацией кода. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. Программное обеспечение для цифровой подписи с рабочим
  2. Криптография против шифрования | Топ 6 Сравнение
  3. Что такое асимметричное шифрование?
  4. Введение в типы цифровой подписи