Chris_M_Thomasson

Reverse Iteration Cipher in Python 3 (part 3)

Jul 13th, 2016
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.39 KB | None | 0 0
  1. import random;
  2.  
  3.  
  4. # Reverse iterate
  5. def revpow2(z, c, b):
  6.      if b == 1:
  7.             return -((z-c)**(0.5));
  8.      else:
  9.             return (z-c)**(0.5);
  10.  
  11.  
  12. # Forward iterate
  13. def fowpow2(z, c):
  14.      return z * z + c;
  15.  
  16.  
  17. # Encrypt bits
  18. def encrypt_bits(z, c, pt):
  19.     for b in pt:
  20.         z=revpow2(z,c,int(b));
  21.         print(z);
  22.     return z;
  23.  
  24.  
  25. # Decrypts bits
  26. def decrypt_bits(z, c, n):
  27.     s = ""
  28.     for b in range(n):
  29.         print(z);
  30.         s += "0" if z.real > 0 else "1";
  31.         z = fowpow2(z,c);
  32.     s = s[::-1]; # reverse the bits
  33.     return s;
  34.  
  35.  
  36. # Generate random z
  37. def randz(nmin, nmax):
  38.     d = nmax - nmin;
  39.     x = nmin + random.random() * d;
  40.     y = nmin + random.random() * d;
  41.     return complex(x, y);
  42.  
  43.  
  44.  
  45.  
  46. # The secret key (c), and origin point (z)
  47. c = (-.75+.09j);
  48. z = randz(-9999999999, 9999999999);
  49. pt0 = "01000001010000010100000101000001";
  50. n = len(pt0);
  51.  
  52.  
  53. print("c:" + str(c));
  54. print("z:" + str(z));
  55. print("n:" + str(n));
  56. print("");
  57.  
  58.  
  59. print("Encrypt: " + pt0);
  60. print("______________________________________");
  61. ct = encrypt_bits(z, c, pt0);
  62. print("______________________________________");
  63. print("");
  64.  
  65.  
  66. print("Decrypt");
  67. print("______________________________________");
  68. pt1 = decrypt_bits(ct, c, n);
  69. print("______________________________________");
  70. print("");
  71.  
  72. print("Decrypted: " + pt1);
  73.  
  74. if pt0 != pt1: print("DATA CORRUPTED!!");
Advertisement
Add Comment
Please, Sign In to add comment