Bevezetés a digitális aláírás titkosításhoz
A digitális aláírás egy kriptográfiai matematikai technika az adatok integritásának és biztonságának igazolására. A digitális aláírás a kriptográfia segítségével megszünteti a megszemélyesítés és a digitális manipuláció valós problémáit. Valós szavakkal megosztani a bizalmas információkat és biztosítani a bizonyítékok eredetét, az elektronikus dokumentum állapotát. A kriptográfia digitális aláírása nyilvános / magánkulcs-rendszert használ. A kulcsokat véletlenszerű hexadecimális számban ábrázoltuk. Rejtjeles digitális aláírás létrehozásához az aláírandó adatok egyirányú kivonása. A titkos kulcs titkosításával a hash titkosításra kerül.
A digitális aláírás rejtjelezése két kulcsfontosságú kifejezéssel lehetséges:
- Privát kulcs
- Nyilvános kulcs
Privát kulcs : A számlatulajdonos rendelkezik olyan kulccsal, amely véletlenszerű hexadecimális szám. A privát kulcs bizalmas lesz a számlatulajdonos számára, ahelyett, hogy a valós helyzetbe kerülne
Nyilvános kulcs : véletlenszerű hexadecimális szám, amelyet nyilvánosan megosztanak. A nyilvános kriptográfiai digitális aláírás létrehozásához az üzenetet először digitálisan aláírják, majd titkosítják a feladó privát kulcsával és a fogadó nyilvános kulcsával. A feladó és a fogadó között megosztott üzenetek visszafejtéséhez a címzettnek vissza kell dekódolnia az információ belső rétegét a feladó nyilvános kulcsával, és az információ külső rétegét a magánkulccsal kell dekódolni, amelyet a fogadó tart.
Digitális aláírás kriptográfiai architektúra
A digitális aláírás kriptográfia segítségével történő végrehajtásához a következőket kell végrehajtani:
A feladó végén az üzenetet / információt titkosítva kell használni egy kivonási funkció segítségével a feladó privát kulcsával. Az információt a közbenső digitális aláírási modell segítségével továbbítják a vevő végéhez. A vevő végén a vevő ellenőrzi a digitális aláírást azáltal, hogy a hash funkcióval visszafejti a kapott információt. A dekódolás úgy történik, hogy a belső réteget kibontja a nyilvános kulcs segítségével, a külső réteget pedig a magánkulcs segítségével. Az információk biztonságos megosztásának egyik fő kihívása az üzenet titkosított formában történő elküldése. A digitális aláírással rendelkező, a külső világgal megosztott nyilvános kulcsú kriptográfia esetén van esély arra, hogy valaki megtéveszti a titkosítást.
A digitális aláírások titkosítását két fő formában lehet végrehajtani:
1. Digitális aláírás, amelyet titkosítás követ
Ebben a módszerben a fogadó aláírást kihasználja és a titkosítás nélkül megosztja az információkat a külső féllel. Mivel ez a forma kevésbé biztonságos, ez az iparban nem előnyös.
2. Titkosítás, amelyet digitális aláírás követ
Az iparban a leggyakoribb megközelítés a titkosítás, amelyet egy digitális aláírás követ, ahol a feladó a titkosított adatokat digitális aláírással küldi el. Amikor a fogadó megkapja az üzenetet a végén, a feladó megosztott üzenetet a feladó nyilvános kulcsának és a fogadó magánkulcsának felhasználásával dekódolja.
Kriptográfiai digitális aláírás az RSA-val
A következő kódrészlet megmagyarázza, hogyan valós időben valós időben valós időben valósul meg a digitális aláírással végzett kriptográfia végrehajtása, valamint elmagyarázza, hogyan történik a titkosítás és a visszafejtés digitális aláírással az RSA használatával. A digitális aláírással végzett kriptográfia elvégzéséhez szükségünk van a pycrypto csomag telepítésére, majd írjuk be az alábbi kódrészletet.
importCrypto
fromPublicKey importRSA
fromCrypto import Random
A digitális aláírással történő kriptográfia végrehajtásához a privát kulcs és a nyilvános kulcs inicializálását kell elvégezni. Hozzunk létre egy funkciót az RSA-kulcsok generálására, amelynek lesz egy privát kulcs és nyilvános kulcs:
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. Titkosítási funkció
defencrypt(public_key, text):
c_text=public_key.encrypt(text, 32)(0) val_cipher=base64.b64encode(c_text)
return val_cipher
Az üzenet titkosításához a fenti kódot használjuk, amely az rsa_publickey és a szöveget veszi paraméterként a titkosítási funkcióhoz. A titkosítási funkció végrehajtja a nyilvános kulcs titkosítását és generálja a rejtjelet, a létrehozott rejtjelet a funkcióhívás meghívásakor adják vissza.
2. Titkosítási funkció
defdecrypt(private_key, val_cipher):
d_cipher = base64.b64decode(val_cipher)
text = private_key.decrypt(d_cipher)
return text
Rejtjelezés digitális aláírással, nyilvános kulcsú titkosítással és szöveges visszafejtéssel, a magánkulcs felhasználásával. Hogy megértsük a titkosított szöveg rejtjelként megosztott szövegét, létrehoztuk a visszafejtési funkciót. A függvény a private_key-t és a titkosítási funkció által generált rejtjelet veszi. A dekódolási módszerrel létrehoz egy dekódolt rejtjelet, a dekódolási módszerrel pedig visszaadja a dekódolt szöveget.
3. Végrehajtás
Ebben a példában megvizsgáljuk, hogyan történik a szöveg titkosítása, és hogyan magyarázza el, hogyan dekódolja vissza az eredeti szöveghez a privát kulcs segítségével. A titkosítás és a visszafejtés funkciót használják a mintában annak megmutatására, hogy a rejtjelek hogyan lesznek titkosítva és dekódolva.
Kód:
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)
Kimenet:
Mint láthatjuk a titkosítási funkcióhoz átadott „Hello Peers!” Bemeneti szöveget a nyilvános kulcs segítségével titkosítják. A titkosított rejtjel, amelyet paramként továbbítottak a dekódolási funkcióhoz, a vevő privát kulcsával megosztott eredeti üzenetet dekódolja. A digitális aláírás kriptográfiai elvégzéséhez a 'sign' és 'ellenőrzés' módszerekre van szükség, a jelzést a küldő fogja elvégezni a magánkulccsal, amikor az információ átkerül a vevőhöz, az ellenőrzési funkciót a nyilvános kulcs segítségével hajtják végre.
A kriptográfia digitális aláírásának érdemei
- Javítani kell az információátadás biztonságát.
- Javítsák jobban a digitalizált munkafolyamatot.
- Jobb vevői élmény.
- Az üzleti hatékonyság és a jogi érvényesség javítása.
- Csökkenti a kézi erőfeszítést és időt takarít meg.
A kriptográfia digitális aláírásának hátrányai
- Nagyon sok időt igényel az ellenőrzés.
- Nem védi a sebezhetőségeket
- Az infrastruktúra és a kriptográfia felállítása nem költséghatékony.
Következtetés
A modern digitális világban a kriptográfiával ellátott digitális aláírási algoritmus alapvető szerepet játszik a biztonságos környezet biztosításában, és ez az egyik jobb eszköz a hitelesítéshez. A növekvő technológiai világban kulcsszerepet játszik a fenyegetések és sebezhetőségek elleni biztonság szempontjából.
Ajánlott cikk
Ez egy útmutató a digitális aláírás titkosításhoz. Itt tárgyaljuk a digitális aláírás kriptográfiai architektúráját és a kód megvalósítását. A további javasolt cikkeken keresztül további információkat is megtudhat -
- Digitális aláírás szoftverek működőképes
- Kriptográfia vs titkosítás | A 6 legjobb összehasonlítás
- Mi az aszimmetrikus titkosítás?
- Bevezetés a digitális aláírástípusokba