小编Gra*_*ory的帖子

使用Jsch生成4096位RSA密钥比2048位慢

我需要为客户端/服务器应用程序创建公共和私有RSA密钥,我正在使用JSch库来执行此操作.到目前为止,我一直在生成4096位密钥,因为我希望尽可能提供最好的安全性.但是,这需要3~5分钟,而生成2048位密钥则需要10秒钟.有一个sscce:

import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.KeyPair;

public class KeyGenerator {

    public static void main(String[] args) {
        JSch jsch = new JSch();

        System.out.println("Starting...");

        try {
            KeyPair keyPair = KeyPair.genKeyPair(jsch, KeyPair.RSA, 4096);
        }
        catch (JSchException e) {
            e.printStackTrace();
        }

        System.out.println("Done.");
    }
}
Run Code Online (Sandbox Code Playgroud)

期待这一代发生时间的巨大差异吗?我不是很清楚如何生成RSA密钥(因此使用库),但我想所需的时间可能是指数级的?它似乎......太指数了.

这是JSch API(因为库本身及其来自的网站旁边没有文档).

更新:我做了一些分析.这是keygen时间图表,从512位开始,最高可达4096,每个键大小有30个样本.

JSch密钥生成时间图. 每个30个样本用于512,1024,2048和4096位密钥.

这是一个类似的图表,排除了4096位试验(相同的数据集):

没有4096位密钥数据的JSch密钥生成时间图表.

这些看起来非常相似,表示相当平滑的指数增加的时间.我想我只是不耐烦了!

java performance rsa jsch

7
推荐指数
2
解决办法
8458
查看次数

标签 统计

java ×1

jsch ×1

performance ×1

rsa ×1