Advertisement
Guest User

Untitled

a guest
Oct 15th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. This message has been encrypted by applying DES two times. Can you recover the key and decrypt it? Message: ff4f3ada7884cfb0a7550083f001f44310da5ec4b0c9ef5fc73ad71d0ad19253265646283883f746547d55d5bee6e21490ac44e6cf2923ac
  2.  
  3. Provided Script in Python:
  4. import os
  5. from Crypto.Cipher import DES
  6. #from crypto.Cipher import DES
  7. BS = DES.block_size
  8. pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
  9. unpad = lambda s: s[0:-ord(s[-1])]
  10.  
  11. def encrypt(data,key1,key2):
  12. data = pad(data)
  13. c1 = DES.new(key1, DES.MODE_ECB)
  14. c2 = DES.new(key2, DES.MODE_ECB)
  15. m = c1.encrypt(data)
  16. r = c2.encrypt(m)
  17. return r
  18.  
  19. def decrypt(data,key1,key2):
  20. c1 = DES.new(key1, DES.MODE_ECB)
  21. c2 = DES.new(key2, DES.MODE_ECB)
  22. m = c2.decrypt(data)
  23. r = c1.decrypt(m)
  24. return unpad(r)
  25.  
  26. f = open('secret.txt')
  27. flag = f.readline().strip()
  28. message = 'The flag is: ' + flag
  29. key1 = f.readline().strip().decode('hex') # 64-bit key generated using os.urandom(3) + ('\x00'*5)
  30. key2 = f.readline().strip().decode('hex') # 64-bit key generated using os.urandom(3) + ('\x00'*5)
  31.  
  32. e = encrypt(message,key1,key2)
  33. print e.encode('hex')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement