rsa lesson added
This commit is contained in:
36
training/h4tum/Intro_to_RSA/demo/PEM/dec_private.py
Normal file
36
training/h4tum/Intro_to_RSA/demo/PEM/dec_private.py
Normal file
@@ -0,0 +1,36 @@
|
||||
from cryptography.hazmat.primitives import serialization
|
||||
|
||||
pem_data = b"""
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAK4gNXUU314X3Wp8
|
||||
ORTyJDw/WqrShnmk2SKuJHocNc9NXWbSZB/UQpjjt5yjmB5Ugl7OkfQd+53TsmJy
|
||||
Vr2ZYjpqNAtu5ijJiBQ3cVTeKEGzPHeCHWLedfStUbC77/+kNAsGPQOzkoHmXe95
|
||||
UnopxzVOfjSdR6vab6YXNvpj1DdvAgMBAAECgYAfT8ltIXC9UdtOD8KQAq8Dan0a
|
||||
ZLsr2rn1I42Jq9L9UTMvjzvUAW5sYd6du0laguXiuJDEbjPWAMB+NYNlmtRv0rzt
|
||||
Ych1EHF/hgCZUMHxISYrrvY1PoHu4JZmTGpo5cREdnjfqzyEDvXO+Rg2AA7rk7hW
|
||||
qg8cmisvaujZ+vtReQJBANkPhl4ItI8uMGqOB7Lev5pMNmZPOkqcYFl7Vi9OYr5s
|
||||
wsTKyvaGM8i2NonSAgwszLl6ylHEBy5CkCopq9gbN4sCQQDNXOirgt/X75ScYPso
|
||||
pzMtcCN0WUPeAbxqfOcerZ5e8XDROGSotjZc3uCaXgPk7kmBRPcoLTHoBruO5pPz
|
||||
8NwtAkEAlVzagFCLNs9434nWgF5JCHsTH/m6yearYke9uZW92v1qVRKa8WLNtXq1
|
||||
MsdBQ3F8etGk8PjsXAfPvkOojW/FGwJBALFiLxb2VKMQLi1lF4xl366/zeARuq1o
|
||||
knborDmzfbhElE4jh86ylQJjAV5VFsgHizY9e78YSqNALYGhaOqsgYECQQDDavQE
|
||||
Z47hwsvkDXSfmOYbLCqPUVKJ4Kk/OO+m8yCugQImDYxgIylroZe3wpKFH5Yk2NkB
|
||||
G6buDKcaTFHcOJiy
|
||||
-----END PRIVATE KEY-----
|
||||
"""
|
||||
|
||||
private_key = serialization.load_pem_private_key(
|
||||
pem_data,
|
||||
password=None
|
||||
)
|
||||
|
||||
numbers = private_key.private_numbers()
|
||||
|
||||
print(f"Modulus (n): {numbers.public_numbers.n}")
|
||||
print(f"Public Exponent (e): {numbers.public_numbers.e}")
|
||||
print(f"Private Exponent (d): {numbers.d}")
|
||||
print(f"Prime 1 (p): {numbers.p}")
|
||||
print(f"Prime 2 (q): {numbers.q}")
|
||||
print(f"d mod (p-1): {numbers.dmp1}")
|
||||
print(f"d mod (q-1): {numbers.dmq1}")
|
||||
print(f"q^-1 mod p: {numbers.iqmp}")
|
||||
16
training/h4tum/Intro_to_RSA/demo/PEM/dec_pub.py
Normal file
16
training/h4tum/Intro_to_RSA/demo/PEM/dec_pub.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from cryptography.hazmat.primitives import serialization
|
||||
|
||||
pem_data = b"""
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCuIDV1FN9eF91qfDkU8iQ8P1qq
|
||||
0oZ5pNkiriR6HDXPTV1m0mQf1EKY47eco5geVIJezpH0Hfud07Jicla9mWI6ajQL
|
||||
buYoyYgUN3FU3ihBszx3gh1i3nX0rVGwu+//pDQLBj0Ds5KB5l3veVJ6Kcc1Tn40
|
||||
nUer2m+mFzb6Y9Q3bwIDAQAB
|
||||
-----END PUBLIC KEY-----
|
||||
"""
|
||||
|
||||
key = serialization.load_pem_public_key(pem_data)
|
||||
|
||||
numbers = key.public_numbers()
|
||||
print(f"Modulus (n): {numbers.n}")
|
||||
print(f"Exponent (e): {numbers.e}")
|
||||
15
training/h4tum/Intro_to_RSA/demo/PEM/easy_gen.py
Normal file
15
training/h4tum/Intro_to_RSA/demo/PEM/easy_gen.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from cryptography.hazmat.primitives.asymmetric import rsa
|
||||
from cryptography.hazmat.primitives import serialization
|
||||
|
||||
key = rsa.generate_private_key(public_exponent=65537, key_size=1024)
|
||||
|
||||
print(key.private_bytes(
|
||||
serialization.Encoding.PEM,
|
||||
serialization.PrivateFormat.PKCS8,
|
||||
serialization.NoEncryption()
|
||||
).decode())
|
||||
|
||||
print(key.public_key().public_bytes(
|
||||
serialization.Encoding.PEM,
|
||||
serialization.PublicFormat.SubjectPublicKeyInfo
|
||||
).decode())
|
||||
37
training/h4tum/Intro_to_RSA/demo/PEM/gen.py
Normal file
37
training/h4tum/Intro_to_RSA/demo/PEM/gen.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from cryptography.hazmat.primitives.asymmetric import rsa
|
||||
from cryptography.hazmat.primitives import serialization
|
||||
from Crypto.Util.number import getPrime
|
||||
|
||||
e = 65537
|
||||
p = getPrime(512)
|
||||
q = getPrime(512)
|
||||
n = p * q
|
||||
phi = (p - 1) * (q - 1)
|
||||
d = pow(e, -1, phi)
|
||||
|
||||
dp = d % (p - 1)
|
||||
dq = d % (q - 1)
|
||||
q_inv = pow(q, -1, p)
|
||||
|
||||
private_numbers = rsa.RSAPrivateNumbers(
|
||||
p=p,
|
||||
q=q,
|
||||
d=d,
|
||||
dmp1=dp,
|
||||
dmq1=dq,
|
||||
iqmp=q_inv,
|
||||
public_numbers=rsa.RSAPublicNumbers(e=e, n=n)
|
||||
)
|
||||
|
||||
key = private_numbers.private_key()
|
||||
|
||||
print(key.private_bytes(
|
||||
encoding=serialization.Encoding.PEM,
|
||||
format=serialization.PrivateFormat.PKCS8,
|
||||
encryption_algorithm=serialization.NoEncryption()
|
||||
).decode())
|
||||
|
||||
print(key.public_key().public_bytes(
|
||||
serialization.Encoding.PEM,
|
||||
serialization.PublicFormat.SubjectPublicKeyInfo
|
||||
).decode())
|
||||
Reference in New Issue
Block a user