Въведение в криптографията за цифров подпис

Цифровият подпис е криптографска математическа техника за проверка на целостта и сигурността на данните. Цифровият подпис с криптография е да реши проблема в реалния свят с представянето и цифровото подправяне. С реални думи за споделяне на поверителна информация и осигуряване на произход на доказателства, състоянието на електронния документ. Криптографският цифров подпис използва система публични / частни ключове. Ключовете бяха представени в произволно шестнадесетично число. За да създадете криптографски цифров подпис, еднопосочно хеширане на данни, което трябва да бъде подписано. С частния ключ ще се извърши криптиране на хеш.

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

  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)

изход:

Както виждаме входният текст „Здравейте, връстници!”, Предаден на функцията за криптиране, се криптира с публичния ключ. Шифрованият шифър, предаден като парам на функцията за декриптиране, декриптира първоначалното съобщение, споделено с помощта на частния ключ на приемника. За извършване на цифров подпис с криптография ще се изисква методът „знак“ и „провери“, знакът ще се извърши от подателя с помощта на частния ключ, когато информацията се прехвърли на получателя, функцията за проверка се извършва с публичния ключ.

Предимства на криптографския цифров подпис

  1. Подобрете сигурността на трансфера на информация.
  2. Подобрете работния процес по-цифрово.
  3. По-добро преживяване на клиентите.
  4. Подобряване на бизнес ефективността и законната валидност.
  5. Намалява ръчното усилие и спестява време.

Отрицания на криптографския цифров подпис

  1. Това изисква много време за проверка.
  2. Не предпазва от уязвимости
  3. Инфраструктурата и настройката на криптографията не са икономически изгодни.

заключение

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

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

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

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