leonard007

Untitled

Nov 13th, 2023
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.68 KB | None | 0 0
  1. import java.math.BigInteger;
  2.  
  3. class HelloWorld {
  4.     public static void main(String[] args) {
  5.        
  6.        
  7.       BigInteger one = new BigInteger("1");
  8.       BigInteger two = new BigInteger ("2");
  9.       BigInteger four = new BigInteger("4");
  10.      
  11.       BigInteger n = new BigInteger("837210799");
  12.       BigInteger e = new BigInteger("7");
  13.       BigInteger e_2 = new BigInteger("17");
  14.       BigInteger d = new BigInteger("478341751");
  15.      
  16.       BigInteger k = d.multiply(e).subtract(one).divide(n).add(BigInteger.ONE);
  17.  
  18.       System.out.println("k is "+k);
  19.       BigInteger p_plus_q = k.multiply(n.add(one)).add(one).subtract(e.multiply(d)).divide(k);
  20.       System.out.println("P+q is "+p_plus_q);
  21.    BigInteger delta = p_plus_q.multiply(p_plus_q).subtract(four.multiply(n));
  22.  
  23.      System.out.println("delta is "+delta);
  24.  
  25.      
  26.       BigInteger p =p_plus_q.add(sqrt(delta)).divide(two);
  27.       BigInteger q = p_plus_q.subtract(sqrt(delta)).divide(two);
  28.       System.out.println("P is "+p);
  29.       System.out.println("Q is "+q);
  30.        
  31.      
  32.      BigInteger d_2 =e_2.modInverse(p.subtract(one).multiply(q.subtract(one)));
  33.  
  34.       System.out.println("The second private key is "+d_2);
  35.      
  36.        
  37.        
  38.     }
  39.    
  40.     public static BigInteger sqrt(BigInteger n) {
  41.     BigInteger a = BigInteger.ONE;
  42.     BigInteger b = n.shiftRight(5).add(BigInteger.valueOf(8));
  43.     while (b.compareTo(a) >= 0) {
  44.         BigInteger mid = a.add(b).shiftRight(1);
  45.         if (mid.multiply(mid).compareTo(n) > 0) {
  46.             b = mid.subtract(BigInteger.ONE);
  47.         } else {
  48.             a = mid.add(BigInteger.ONE);
  49.         }
  50.     }
  51.     return a.subtract(BigInteger.ONE);
  52. }
  53.  
  54. }
Add Comment
Please, Sign In to add comment