-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcryptlvl6.py
18 lines (13 loc) · 1.26 KB
/
cryptlvl6.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from random import randint
p = 0xffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff
g = 0x2
A = 0x34bbdc3562e3fa5aa197bbe2436da0673387bdbda7afb2a7acab010483e01545e2687d7a1d9d8ae0276dc87e323e2b3b0aa13c95b1f607f229c58f867dde5c152db8772ef071ebd310e3adc294d6d16a007c9e5aefc8d05e59e6c54aca93938ee4cb5d2d920bc315c365b07c0c194efd1679377b3f328468d7c47094d8821fcbbc4e02564eb49a7ba3252b60e9c1c4c37aa14ad4c564694ad409ffe572eb4228b8954deb6a70fcb05ddc415d322171f4353961cfc90e1dbf9f9b923f9dadd31243abef9c3002513bd3e755ad49b09cb202b86ffa962afcedf8f17a889f68fec0d8a1d047d1130261be4306c06cea8ee2a7887de0fb1fc3cec3e1443611966ef0
# Generate private key b
b = randint(1, p - 1)
# Compute public key B
B = pow(g, b, p)
# Compute shared secret s
s = pow(A, b, p)
print("Private key b:", b)
print("Public key B:", B)
print("Shared secret s:", s)