init
This commit is contained in:
commit
ec14efb417
7 files changed
+182
No files matched your search
@@ -0,0 +1,70 @@
|
||||
import time
|
||||
|
||||
import hmac
|
||||
import hashlib
|
||||
import secrets
|
||||
|
||||
m = input("Message: ").encode()
|
||||
|
||||
key = secrets.token_bytes(16)
|
||||
|
||||
sig_gen_times = []
|
||||
sig_ver_times = []
|
||||
|
||||
# HMAC
|
||||
|
||||
for n in range(100):
|
||||
|
||||
start = time.time()
|
||||
hmac_object = hmac.new(key, m, hashlib.sha256)
|
||||
end = time.time()
|
||||
|
||||
sig_gen_times.append(end - start)
|
||||
|
||||
start = time.time()
|
||||
assert hmac_object.digest() == hmac.new(key, m, hashlib.sha256).digest()
|
||||
end = time.time()
|
||||
|
||||
sig_ver_times.append(end - start)
|
||||
|
||||
avg_gen_time = (sum(sig_gen_times)/len(sig_gen_times)) * 1000
|
||||
avg_ver_time = (sum(sig_ver_times)/len(sig_ver_times)) * 1000
|
||||
|
||||
print(f"Average HMAC Generation Time: {avg_gen_time} ms")
|
||||
print(f"Average HMAC Verification Time: {avg_ver_time} ms")
|
||||
|
||||
# RSA
|
||||
|
||||
from Crypto.PublicKey import RSA
|
||||
from Crypto.Signature import pss
|
||||
from Crypto.Hash import SHA256
|
||||
|
||||
sig_gen_times = []
|
||||
sig_ver_times = []
|
||||
|
||||
key = RSA.generate(2048)
|
||||
|
||||
for n in range(100):
|
||||
|
||||
start = time.time()
|
||||
h = SHA256.new(m)
|
||||
signer = pss.new(key)
|
||||
signature = signer.sign(h)
|
||||
end = time.time()
|
||||
|
||||
sig_gen_times.append(end - start)
|
||||
public_key = key.publickey()
|
||||
|
||||
start = time.time()
|
||||
h = SHA256.new(m)
|
||||
verifier = pss.new(public_key)
|
||||
verifier.verify(h, signature)
|
||||
end = time.time()
|
||||
|
||||
sig_ver_times.append(end - start)
|
||||
|
||||
avg_gen_time = (sum(sig_gen_times)/len(sig_gen_times)) * 1000
|
||||
avg_ver_time = (sum(sig_ver_times)/len(sig_ver_times)) * 1000
|
||||
|
||||
print(f"Average RSA Signature Generation Time: {avg_gen_time} ms")
|
||||
print(f"Average RSA Signature Verification Time: {avg_ver_time} ms")
|
||||
Reference in new issue
Block a user