使用jpbc的程序需要很长时间

时间:2016-09-23 04:20:16

标签: java performance cryptography

这是我编写的一个非常简单的程序,它使用jpbc库。 它编译没有任何错误,但需要非常长的时间来显示输出,或者实际上它根本不显示输出。 (在这个时代,谁会有耐心等待将近半个小时才能完成这么小的程序?)我正在使用带有i7处理器的系统,但情况仍然如此。

有人能说出这段代码可能有什么问题吗?

import it.unisa.dia.gas.jpbc.*;
import it.unisa.dia.gas.plaf.jpbc.pairing.PairingFactory;
import it.unisa.dia.gas.plaf.jpbc.pairing.parameters.*;
import it.unisa.dia.gas.jpbc.PairingParametersGenerator;
import it.unisa.dia.gas.jpbc.PairingParameters;
import it.unisa.dia.gas.plaf.jpbc.pairing.a1.TypeA1CurveGenerator;
public class PairingDemo {

    public static void main(String [] args){
        try{
            int rBits = 160;
            int qBits = 512;
            PairingParametersGenerator pg = new TypeA1CurveGenerator(rBits, qBits);
            PairingParameters params = pg.generate();
            Pairing pair = PairingFactory.getPairing("D:\\JPBCLib\\params\\curves\\a1.Properties");
            Field Zr = pair.getZr();
            int degree = pair.getDegree();
            System.out.println("Degree of the pairing : " + degree);
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您在这里处理三个问题

  • 生成配对参数需要一些时间,但这只需要为您正在构建的系统执行一次。您应该存储生成的配对参数以供以后使用。

  • 由于您未使用<--"" Level INFO Handler Stream <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'> Level INFO Formatter <colorlog.colorlog.ColoredFormatter object at 0x1103a1668> | o<--"django" | Level INFO | Handler Stream <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'> | Level INFO | Filter <django.utils.log.RequireDebugTrue object at 0x11047d518> | Handler <AdminEmailHandler (ERROR)> | Level ERROR | Filter <django.utils.log.RequireDebugFalse object at 0x11053a7f0> | | | o<--"django.db" | | Level NOTSET so inherits level INFO | | | | | o<--"django.db.backends" | | Level NOTSET so inherits level INFO | | | | | o<--"django.db.backends.schema" | | Level NOTSET so inherits level INFO | | | o<--"django.request" | | Level NOTSET so inherits level INFO | | | o "django.server" | | Level INFO | | Propagate OFF | | Handler Stream <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'> | | Level INFO | | Formatter <django.utils.log.ServerFormatter object at 0x11053a630> | | | o<--"django.template" | Level NOTSET so inherits level INFO | o<--"gunicorn" Level NOTSET so inherits level INFO | o "gunicorn.access" | Level INFO | Propagate OFF | Handler Stream <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'> | Level INFO | Formatter <colorlog.colorlog.ColoredFormatter object at 0x1103a1668> | o "gunicorn.error" | Level INFO | Propagate OFF | Handler Stream <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'> | Level INFO | Formatter <colorlog.colorlog.ColoredFormatter object at 0x1103a1668> | o<--"gunicorn.http" Level NOTSET so inherits level INFO | o<--"gunicorn.http.wsgi" Level NOTSET so inherits level INFO pg,因此您可以删除该代码。相反,您正在从文件中读取预先计算的参数。

  • jPBC是PBC的完整且纯粹的Java实现。它完全便携,因此非常慢。 jPBC可以选择使用PBCWrapper库,它是libpbc的包装器,可以让你获得本机库的性能。我无法在Windows上运行,但Linux应该不是问题(确保检查JNI版本或加载自己的版本)。