rsa_accum.sage 534 B

123456789101112131415161718192021222324252627282930313233
  1. p = 2^31 - 1
  2. q = 2^61 - 1
  3. assert is_prime(p)
  4. assert is_prime(q)
  5. n = p * q
  6. # Order of the multiplicative group for n
  7. # phi = (p - 1) * (q - 1)
  8. K = IntegerModRing(n)
  9. A_0 = K(5)
  10. c_0 = random_prime(2^12)
  11. A_1 = A_0^c_0
  12. c_1 = random_prime(2^12)
  13. A_2 = A_1^c_1
  14. c_2 = random_prime(2^12)
  15. W_3 = A_2
  16. A_3 = A_2^c_2
  17. c_3 = random_prime(2^12)
  18. W_4 = W_3^c_3
  19. A_4 = A_3^c_3
  20. c_4 = random_prime(2^12)
  21. W_5 = W_4^c_4
  22. A_5 = A_4^c_4
  23. assert W_5^c_2 == A_5
  24. assert A_5 == A_0^(c_0 * c_1 * c_2 * c_3 * c_4)
  25. assert W_5 == A_0^(c_0 * c_1 * c_3 * c_4)