rishabbansal21

DHKE(script)

Feb 3rd, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.30 KB | None | 0 0
  1. import random
  2. import binascii
  3.  
  4. def Random_String_Generator(length):  
  5.     msg = ""
  6.    
  7.     while len(msg)!=length:
  8.         i = random.randint(1,255)
  9.         j = random.randint(1,255)
  10.        
  11.         s = (i*j)%128
  12.  
  13.         if s<33:
  14.             s = random.randint(33,128)
  15.  
  16.         msg += str(chr(s))
  17.  
  18.     return(msg)
  19.    
  20. def xor(m,k):
  21.     key = str(k)
  22.     ct = ""
  23.     for i in range(len(m)):
  24.         ct += chr(ord(key[i%(len(key))])^ord(m[i]))
  25.     return(binascii.hexlify(ct.encode()))
  26.  
  27. FLAG = "evlz{N0VV_Y0U_534_M3}ctf"
  28.  
  29. cnt = random.randint(40,60)
  30. f = random.randint(20,30)
  31.  
  32. for i in range(cnt):
  33.     alpha = random.randint(800000000,1000000000)
  34.     p = random.randint(350000000000000,5500000000000000)
  35.     print("\n\nalpha:",alpha)
  36.     print("p:",p)
  37.    
  38.     A = int(input("\nGive me your A: "))
  39.     b = random.randint(1,10)
  40.     B = pow(alpha,b,p)
  41.     print("Take my B:",B)
  42.    
  43.     KEY = pow(A,b,p)
  44.    
  45.     l = random.randint(20,30)
  46.     m = Random_String_Generator(l)
  47.    
  48.     if i==f:
  49.         ct = xor(FLAG,KEY)
  50.     else:
  51.         ct = xor(m,KEY)
  52.        
  53.     print("\nCiphertext:",ct)
  54.    
  55.     pt = input("\nPlaintext(encoded in hex): ")
  56.    
  57.     if binascii.unhexlify(pt).decode() == m:
  58.         continue
  59.     else:
  60.         print("\noof")
  61.         break
  62.  
  63. print("\nThanks")
Add Comment
Please, Sign In to add comment