Wprowadzenie do kryptografii podpisów cyfrowych

Podpis cyfrowy to kryptograficzna technika matematyczna służąca do sprawdzania integralności i bezpieczeństwa danych. Podpis cyfrowy z kryptografią ma rozwiązać rzeczywisty problem podszywania się i manipulacji cyfrowej. Mówiąc realnie, aby udostępnić poufne informacje i zapewnić pochodzenie dowodów, status dokumentu elektronicznego. Podpis cyfrowy w kryptografii wykorzystuje system kluczy publicznych / prywatnych. Klucze były reprezentowane losową liczbą szesnastkową. Aby utworzyć kryptograficzny podpis cyfrowy, jednokierunkowe mieszanie danych do podpisania. Dzięki kluczowi prywatnemu zostanie przeprowadzone szyfrowanie skrótu.

Kryptografia podpisu cyfrowego jest możliwa z dwoma kluczowymi terminami:

  1. Prywatny klucz
  2. Klucz publiczny

Klucz prywatny : posiadacz rachunku posiada klucz, który jest losową liczbą szesnastkową. Klucz prywatny będzie poufny dla właściciela konta, a nie narażony na rzeczywisty świat

Klucz publiczny : losowa liczba szesnastkowa udostępniana publicznie. Aby utworzyć publiczny podpis cyfrowy w kryptografii, wiadomość zostanie najpierw podpisana cyfrowo, a następnie zaszyfrowana kluczem prywatnym nadawcy i kluczem publicznym odbiorcy. Aby odszyfrować wiadomości współdzielone przez nadawcę i odbiorcę, odbiorca musi odszyfrować wewnętrzną warstwę informacji za pomocą klucza publicznego nadawcy i odszyfrować zewnętrzną warstwę informacji za pomocą klucza prywatnego, który posiada odbiorca.

Architektura kryptografii podpisów cyfrowych

Aby wykonać podpis cyfrowy za pomocą kryptografii, należy wykonać następujące czynności:

Po stronie nadawcy wiadomość / informacje powinny zostać zaszyfrowane za pomocą funkcji mieszającej z kluczem prywatnym nadawcy. Informacje zostaną przesłane do końca odbiorcy za pomocą pośredniego modelu podpisu cyfrowego. Na końcu odbiorcy odbiornik weryfikuje podpis cyfrowy, odszyfrowując informacje otrzymane za pomocą funkcji skrótu. Deszyfrowanie zostanie przeprowadzone przez wyodrębnienie wewnętrznej warstwy za pomocą klucza publicznego, a zewnętrzną warstwę wyodrębnienia za pomocą klucza prywatnego. Jednym z głównych wyzwań związanych z bezpiecznym udostępnianiem informacji jest wysłanie wiadomości w postaci zaszyfrowanej. W kryptografii z podpisem cyfrowym posiadającym klucz publiczny współdzielony ze światem zewnętrznym istnieje ryzyko, że ktoś może sfałszować szyfrowanie.

Szyfrowanie podpisów cyfrowych może odbywać się w dwóch głównych formach:

1. Podpis cyfrowy, po którym następuje szyfrowanie

W tej metodzie podpis nadawcy jest wykorzystywany przez odbiorcę, a informacje są udostępniane podmiotowi zewnętrznemu bez szyfrowania. Ponieważ ta forma jest mniej zabezpieczona, w przemyśle nie jest to preferowane.

2. Szyfrowanie, po którym następuje podpis cyfrowy

Najpopularniejszym podejściem w branży jest szyfrowanie, a następnie podpis cyfrowy, w którym nadawca wysyła zaszyfrowane dane z podpisem cyfrowym. Gdy odbiorca odbierze wiadomość na jej końcu, odszyfruje wiadomość udostępnioną przez nadawcę za pomocą klucza publicznego nadawcy i klucza prywatnego odbiorcy.

Kryptografia Podpis cyfrowy z RSA

Poniższy fragment kodu wyjaśni, w jaki sposób kryptografia z podpisem cyfrowym jest implementowana w Pythonie w czasie rzeczywistym, a także wyjaśni, w jaki sposób szyfrowanie i deszyfrowanie odbywa się przy użyciu podpisu cyfrowego za pomocą RSA. Aby wykonać kryptografię z podpisem cyfrowym, wymagamy zainstalowanego pakietu pycrypto, a następnie napisz poniższy fragment kodu.

importCrypto
fromPublicKey importRSA
fromCrypto import Random

Aby wykonać kryptografię z podpisem cyfrowym, wymagamy inicjalizacji klucza prywatnego i klucza publicznego. Tworzymy funkcję do generowania kluczy RSA, które będą miały klucz prywatny i klucz publiczny:

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. Funkcja szyfrowania

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

Aby zaszyfrować wiadomość, używamy powyższego kodu, który weźmie rsa_publickey i tekst jako parametry funkcji szyfrowania. Funkcja szyfrowania przeprowadzi szyfrowanie klucza publicznego i wygeneruje szyfr, wygenerowany szyfr zostanie zwrócony po wywołaniu wywołania funkcji.

2. Funkcja deszyfrowania

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

Kryptografia z podpisem cyfrowym przy użyciu szyfrowania kluczem publicznym i odszyfrowywania tekstu przy użyciu klucza prywatnego. Aby zrozumieć znaczenie zaszyfrowanego tekstu udostępnianego jako szyfr, stworzyliśmy funkcję deszyfrowania. Funkcja pobiera klucz prywatny i szyfr wygenerowany przez funkcję szyfrowania. Za pomocą metody dekodowania tworzy odszyfrowany szyfr, a za pomocą metody deszyfrowania zwraca odszyfrowany tekst.

3. Realizacja

W tym przykładzie przyjrzymy się, jak odbywa się szyfrowanie tekstu i jak jest on odszyfrowywany z powrotem do oryginalnego tekstu za pomocą klucza prywatnego. Funkcja szyfrowania i deszyfrowania zostanie użyta w przykładzie, aby pokazać, jak szyfrować będzie szyfrowany i deszyfrowany.

Kod:

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)

Wynik:

Jak widzimy tekst wejściowy „Hello Peers!” Przekazany do funkcji szyfrowania jest szyfrowany za pomocą klucza publicznego. Zaszyfrowany szyfr przekazany jako parametr do funkcji odszyfrowywania odszyfrowuje oryginalną wiadomość udostępnioną za pomocą prywatnego klucza odbiorcy. Aby wykonać podpis cyfrowy za pomocą kryptografii, wymagana będzie metoda „podpis” i „weryfikacja”, nadawca wykona znak przy użyciu klucza prywatnego, gdy informacja zostanie przesłana do odbiorcy, funkcja weryfikacji zostanie wykonana przy użyciu klucza publicznego.

Zalety kryptografii Podpis cyfrowy

  1. Popraw bezpieczeństwo transferu informacji.
  2. Usprawnij przepływ pracy w postaci bardziej zdigitalizowanej.
  3. Lepsza obsługa klienta.
  4. Popraw efektywność biznesową i ważność prawną.
  5. Zmniejsza wysiłek ręczny i oszczędza czas.

Demerity kryptografii Podpis cyfrowy

  1. Weryfikacja wymaga dużo czasu.
  2. Nie chroni przed lukami w zabezpieczeniach
  3. Infrastruktura i konfiguracja kryptografii nie są tanie.

Wniosek

We współczesnym cyfrowym świecie algorytm podpisu cyfrowego z kryptografią odgrywa istotną rolę w zapewnianiu bezpiecznego środowiska i jest jednym z lepszych narzędzi do uwierzytelniania. W rozwijającym się świecie technologii będzie odgrywać kluczową rolę w zakresie bezpieczeństwa przed zagrożeniami i podatnościami.

Polecany artykuł

Jest to przewodnik po kryptografii podpisów cyfrowych. Tutaj omawiamy architekturę kryptografii podpisów cyfrowych wraz z implementacją kodu. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Oprogramowanie podpisu cyfrowego z działającym
  2. Kryptografia a szyfrowanie | Porównanie 6 najlepszych
  3. Co to jest szyfrowanie asymetryczne?
  4. Wprowadzenie do typów podpisów cyfrowych