小编Jul*_*att的帖子

如何使用模数和指数/公钥在 Java 中使用非常大的数字快速破解 RSA 加密

我的任务是制作一个程序,用双方的模数和公钥以及密文来破解 RSA 加密。我找到了用蛮力找到乘以模数的素数的解决方案。但是对于我必须使用的数字的大小,它似乎甚至无法完成处理。(模数为 30 位左右)

这是我们得到的示例数据:

{
"alice": {
"modulus": "66056083785421544972111685239",
"publicKey": "38933338385103628492607145193"
},
"bob": {
"modulus": "71994651332404115788173195239",
"publicKey": "28763302913765661132800185637"
},
"cipherText": "5b8sot9g2168mp3nw51"
}
Run Code Online (Sandbox Code Playgroud)

这是我目前正在尝试的解决方案,使用费马算法尝试更快地找到素数:

import java.math.BigInteger;
public class ferr
{

    static BigInteger r1;
    static BigInteger r2;
    static BigInteger aliceModulus = new BigInteger("107182711767121947041078387099");

    public static void main (){
        System.out.println("running");
        ferr x = new ferr();
     x.fermat(aliceModulus);
    }


    public void fermat(BigInteger N)
    {
        BigInteger a = calcSQR(N);
        BigInteger b2 = (a.multiply(a).subtract(N));
        while(Square(b2) == false) {
            a = a.add(BigInteger.valueOf(1));
            b2 = (a.multiply(a).subtract(N));
        } …
Run Code Online (Sandbox Code Playgroud)

java encryption rsa

2
推荐指数
1
解决办法
692
查看次数

标签 统计

encryption ×1

java ×1

rsa ×1