Въведение в криптографията за цифров подпис
Цифровият подпис е криптографска математическа техника за проверка на целостта и сигурността на данните. Цифровият подпис с криптография е да реши проблема в реалния свят с представянето и цифровото подправяне. С реални думи за споделяне на поверителна информация и осигуряване на произход на доказателства, състоянието на електронния документ. Криптографският цифров подпис използва система публични / частни ключове. Ключовете бяха представени в произволно шестнадесетично число. За да създадете криптографски цифров подпис, еднопосочно хеширане на данни, което трябва да бъде подписано. С частния ключ ще се извърши криптиране на хеш.
Криптографията на цифров подпис е възможна с два ключови термина:
- Частен ключ
- Публичен ключ
Частен ключ : Титулярът на акаунта държи ключ, който е произволно шестнадесетично число. Частният ключ ще бъде по-конфиденциален за притежателя на акаунта, а не изложен на реалния свят
Публичен ключ : Случайно шестнадесетично число, което се споделя публично. За създаване на публичен криптографски цифров подпис съобщението първо ще бъде подписано цифрово, след което то се криптира с частния ключ на подателя и с публичния ключ на получателя. За да дешифрира съобщенията, споделени между подателя и получателя, получателят трябва да декриптира вътрешния слой на информацията с публичния ключ на подателя и да декриптира външния слой на информацията, като използва частния ключ, който приемникът държи.
Криптографска архитектура на цифровия подпис
За да извършите цифров подпис с помощта на криптография, трябва да се извърши следното:
В края на подателя, съобщението / информацията трябва да бъдат кодирани с помощта на хеширане функция с личния ключ на изпращача. Информацията ще бъде изпратена до края на приемника с модела на междинен цифров подпис. В края на приемника приемникът проверява цифровия подпис, като дешифрира получената информация с помощта на хеширащата функция. Декриптирането ще се извърши чрез извличане на вътрешния слой с помощта на публичния ключ и външния слой, извлечен с помощта на частния ключ. Едно от основните предизвикателства за сигурното споделяне на информация е изпращането на съобщението в криптиран формат. В криптографията с цифров подпис, който има публичен ключ, споделен с външния свят, има вероятност някой да измами кодирането.
Шифроването на цифрови подписи може да се извърши в две основни форми:
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)
изход:
Както виждаме входният текст „Здравейте, връстници!”, Предаден на функцията за криптиране, се криптира с публичния ключ. Шифрованият шифър, предаден като парам на функцията за декриптиране, декриптира първоначалното съобщение, споделено с помощта на частния ключ на приемника. За извършване на цифров подпис с криптография ще се изисква методът „знак“ и „провери“, знакът ще се извърши от подателя с помощта на частния ключ, когато информацията се прехвърли на получателя, функцията за проверка се извършва с публичния ключ.
Предимства на криптографския цифров подпис
- Подобрете сигурността на трансфера на информация.
- Подобрете работния процес по-цифрово.
- По-добро преживяване на клиентите.
- Подобряване на бизнес ефективността и законната валидност.
- Намалява ръчното усилие и спестява време.
Отрицания на криптографския цифров подпис
- Това изисква много време за проверка.
- Не предпазва от уязвимости
- Инфраструктурата и настройката на криптографията не са икономически изгодни.
заключение
В съвременния дигитален свят алгоритъмът за цифров подпис с криптография играе жизненоважна роля за осигуряване на сигурна и сигурна среда и е един от по-добрите инструменти за удостоверяване. В нарастващия технологичен свят той ще играе своята ключова роля по отношение на сигурността срещу заплахи и уязвимости.
Препоръчителен член
Това е ръководство за криптография с цифров подпис. Тук обсъждаме криптографската архитектура на цифровия подпис, заедно с прилагането на кода. Можете да разгледате и другите ни предложени статии, за да научите повече -
- Софтуер за цифров подпис с работа
- Криптография срещу криптиране | Топ 6 сравнение
- Какво е асиметрично криптиране?
- Въведение в типовете цифрови подписи