Сертификацияланған шифрлар
|
ChaCha20-Poly1305, XChaCha-Poly1305
|
Аутентификация тексерісімен шифрлау режимдері
|
GCM, CCM, EAX
|
Хабарламаларды аутентификациялау коды
|
Poly1305 MAC
|
Криптографиялық хэш-функция
|
SHA3 (SHAKE XOF-ты қоса алғанда), SHA-512 қысқартылған алгоритмі, BLAKE2
|
Ашық кілтті криптография
|
RSA және DSA-да кілттердің таза генерациялануы
|
Эллипстік қисықтар криптографиясы
|
NIST P-256, P-521
|
Төменде осы Python тілінде PyCryptodome кітапханасын қолданып, текстті AES-256 симметриялық шифрымен текстті шифрлайтын және дешифрлайтын программа көрсетілген:
Ол үшін алдымен кітапхананың өзін орнатамыз:
Pip install pycryptodomex
Одан кейін кодтың өзі орындалады. Программада PyCryptodome кітапханасын қолдану арқылы AES 256 биттік алгоритмін шифрлау және дешифрлау көрсетілген (13 сурет).
from Crypto.Cipher import AES
import time
import binascii, os
t0 = time.time()
def encrypt_AES_GCM(msg, secretKey):
aesCipher = AES.new(secretKey, AES.MODE_GCM)
ciphertext, authTag = aesCipher.encrypt_and_digest(msg)
return (ciphertext, aesCipher.nonce, authTag)
def decrypt_AES_GCM(encryptedMsg, secretKey):
(ciphertext, nonce, authTag) = encryptedMsg
aesCipher = AES.new(secretKey, AES.MODE_GCM, nonce)
plaintext = aesCipher.decrypt_and_verify(ciphertext, authTag)
return plaintext
secretKey = os.urandom(32)
print("Shifrlau kilti:", binascii.hexlify(secretKey))
msg = b'Bul habarlama AES-256-GCM algoritmimen shifrlandy'
encryptedMsg = encrypt_AES_GCM(msg, secretKey)
print("Shifrlengen habarlama", {
'shifrtext': binascii.hexlify(encryptedMsg[0]),
'aesIV': binascii.hexlify(encryptedMsg[1]),
'MAC': binascii.hexlify(encryptedMsg[2])
})
decryptedMsg = decrypt_AES_GCM(encryptedMsg, secretKey)
t1 = time.time()
total = t1 = t0
print("Deshifrlengen habarlama", decryptedMsg)
print("Uakit = ", total)
Достарыңызбен бөлісу: |