⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imratio.c

📁 这是一个unix环境下实现基于身份的PKI系统源码
💻 C
字号:
/* benchmark inversions and multiplications in F_p^2 * (combines private key shares into a private key) * Ben Lynn *//*Copyright (C) 2001 Benjamin Lynn (blynn@cs.stanford.edu)See LICENSE for license*/#include "get_time.h"#include "curve.h"#include "format.h"#include "ibe_progs.h"enum {    trials = 5000};int imratio(int argc, char **argv){    int i;    fp2_t a[trials], b[trials], c;    mpz_t x[trials], y[trials], z;    double t0, t1;    double R, M, I, S;    mpz_ptr p = params->p;    for (i=0; i<trials; i++) {	fp2_init(a[i]);	fp2_init(b[i]);	mpz_init(x[i]);	mpz_init(y[i]);    }    fp2_init(c);    mpz_init(z);    printf("F_p^2 operations\n");    t0 = get_time();    for (i=0; i<trials; i++) {	fp2_random(a[i], p);	fp2_random(b[i], p);    }    t1 = get_time();    R = t1 - t0;    printf("%d 2R = %f\n", trials, R);    t0 = get_time();    for (i=0; i<trials; i++) {	fp2_mul(c, a[i], b[i], p);    }    t1 = get_time();    M = t1 - t0;    printf("%d M = %f\n", trials, M);    t0 = get_time();    for (i=0; i<trials; i++) {	fp2_sqr(c, a[i], p);    }    t1 = get_time();    S = t1 - t0;    printf("%d S = %f\n", trials, S);    t0 = get_time();    for (i=0; i<trials; i++) {	fp2_inv(c, a[i], p);    }    t1 = get_time();    I = t1 - t0;    printf("%d I = %f\n", trials, I);    printf("I/M = %f\n", I/M);    printf("F_p operations\n");    t0 = get_time();    for (i=0; i<trials; i++) {	mympz_randomm(x[i], params->p);	mympz_randomm(y[i], params->p);    }    t1 = get_time();    R = t1 - t0;    printf("%d 2R = %f\n", trials, R);    t0 = get_time();    for (i=0; i<trials; i++) {	mpz_mul(z, x[i], y[i]);    }    t1 = get_time();    M = t1 - t0;    printf("%d M = %f\n", trials, M);    t0 = get_time();    for (i=0; i<trials; i++) {	mpz_invert(z, x[i], p);    }    t1 = get_time();    I = t1 - t0;    printf("%d I = %f\n", trials, I);    printf("I/M = %f\n", I/M);    for (i=0; i<trials; i++) {	fp2_clear(a[i]);	fp2_clear(b[i]);	mpz_clear(x[i]);	mpz_clear(y[i]);    }    fp2_clear(c);    mpz_clear(z);    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -