亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cm.cpp

?? 比較新的功能強大的rsa算法源代碼,方便使用.
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
        case TIMES:
                n*=oldn; 
                break;
        case '/':
                n=oldn/n;
                break;
        case '%':
                n=oldn%n;
        }
}

void eval_sum (Big& oldn,Big& n,char op)
{
        switch (op)
        {
        case '+':
                n+=oldn;
                break;
        case '-':
                n=oldn-n;
        }
}

void eval (Big& t)
{
        Big oldn[3];
        Big n;
        int i;
        char oldop[3];
        char op;
        char minus;
        for (i=0;i<3;i++)
        {
            oldop[i]=0;
        }
LOOP:
        while (*s==' ')
        s++;
        if (*s=='-')    /* Unary minus */
        {
        s++;
        minus=1;
        }
        else
        minus=0;
        while (*s==' ')
        s++;
        if (*s=='(' || *s=='[' || *s=='{')    /* Number is subexpression */
        {
        s++;
        eval(t);
        n=t;
        }
        else            /* Number is decimal value */
        {
        for (i=0;s[i]>='0' && s[i]<='9';i++)
                ;
        if (!i)         /* No digits found */
        {
                cout <<  "Error - invalid number" << endl;
                exit (20);
        }
        op=s[i];
        s[i]=0;
        n=atoi(s);
        s+=i;
        *s=op;
        }
        if (minus) n=-n;
        do
        op=*s++;
        while (op==' ');
        if (op==0 || op==')' || op==']' || op=='}')
        {
        eval_power (oldn[2],n,oldop[2]);
        eval_product (oldn[1],n,oldop[1]);
        eval_sum (oldn[0],n,oldop[0]);
        t=n;
        return;
        }
        else
        {
        if (op==RAISE)
        {
                eval_power (oldn[2],n,oldop[2]);
                oldn[2]=n;
                oldop[2]=RAISE;
        }
        else
        {
                if (op==TIMES || op=='/' || op=='%')
                {
                eval_power (oldn[2],n,oldop[2]);
                oldop[2]=0;
                eval_product (oldn[1],n,oldop[1]);
                oldn[1]=n;
                oldop[1]=op;
                }
                else
                {
                if (op=='+' || op=='-')
                {
                        eval_power (oldn[2],n,oldop[2]);
                        oldop[2]=0;
                        eval_product (oldn[1],n,oldop[1]);
                        oldop[1]=0;
                        eval_sum (oldn[0],n,oldop[0]);
                        oldn[0]=n;
                        oldop[0]=op;
                }
                else    /* Error - invalid operator */
                {
                        cout <<  "Error - invalid operator" << endl;
                        exit (20);
                }
                }
        }
        }
        goto LOOP;
}

int main(int argc,char **argv)
{
    BOOL good,dir,always;
    int i,ip,m,precision;
    unsigned long SD,D;
    ofstream ofile;

    mip=mirsys(128,0);
    Big p,k,t;

    argv++; argc--;   

    irand(0L);
    if (argc<1)
    {
      cout << "Incorrect Usage" << endl;
      cout << "Program tries to find Elliptic Curve mod a prime P and point of prime order" << endl;
      cout << "that is a point (X,Y) on the curve y^2=x^3+Ax+B of order R" << endl;
      cout << "where R is large and prime > |P/K|. (K defaults to 256)" << endl;
      cout << "cm <prime number P>" << endl;
      cout << "OR" << endl;
      cout << "cm -f <formula for P>" << endl;
#if defined(unix)
      cout << "e.g. cm -f 2^192-2^64-1" << endl;
#else
      cout << "e.g. cm -f 2#192-2#64-1" << endl;
#endif
      cout << "To suppress commentary, use flag -s. To insist on A= -3, use flag -t" << endl;
      cout << "(the commentary will make some sense to readers of IEEE 1363 Annex)" << endl;
      cout << "To search downwards for a prime, use flag -d" << endl;
      cout << "To output to a file, use flag -o <filename>" << endl;
      cout << "To set maximum  co-factor size K, use e.g. flag -K8" << endl;
      cout << "To set infinite co-factor size K, use flag -K0" << endl;
      cout << "(In this case the reported R is the number of points on the curve)" << endl;
      cout << "To start searching from a particular D value, use e.g. flag -D10000" << endl;
      cout << "To set MIRACL precision to 2^n words, use e.g. flag -Pn (default -P5)" << endl;
      cout << "If program fails, try again with n=n+1" << endl;  
      cout << "To insist on IEEE-1363 invariants, use flag -IEEE" << endl;
#if defined(unix)
      cout << "e.g. cm -f 2^224-2^96+1 -K12 -D4000000 -P9 -o common.ecs" << endl;
#else
      cout << "e.g. cm -f 2#224-2#96+1 -K12 -D4000000 -P9 -o common.ecs" << endl;
#endif
      cout << "Freeware from Shamus Software, Dublin, Ireland" << endl;
      cout << "Full C++ source code and MIRACL multiprecision library available" << endl;
      cout << "Email to mscott@indigo.ie for details" << endl;
      return 0;
    }

    gprime(1000);
    m=5;
    ip=0;
    k=256;
    SD=1;
    suppress=FALSE;
    fout=FALSE;
    dir=FALSE;
    three=FALSE;
    always=FALSE;
    p=0;
    while (ip<argc)
    {
        if (strcmp(argv[ip],"-f")==0)
        {
            if (p==0)
            {
                ip++;
                s=argv[ip++];
                t=0;
                eval(t);
                p=t;
                continue;
            }
            else
            {
                cout << "Error in command line" << endl;
                return 0;
            }
        }    
        if (strcmp(argv[ip],"-s")==0)
        {
            ip++;
            suppress=TRUE;
            continue;
        }
        if (strcmp(argv[ip],"-t")==0)
        {
            ip++;
            three=TRUE;
            continue;
        }
        if (strcmp(argv[ip],"-d")==0)
        {
            ip++;
            dir=TRUE;
            continue;
        }
        if (strncmp(argv[ip],"-K",2)==0)
        {
             k=argv[ip]+2;
             ip++;
             continue;
        }
        if (strncmp(argv[ip],"-D",2)==0)
        {
             SD=atol(argv[ip]+2);
             ip++;
             continue;
        }
        if (strncmp(argv[ip],"-P",2)==0)
        {
             m=atoi(argv[ip]+2);
             ip++;
             continue;
        }
        if (strncmp(argv[ip],"-IEEE",5)==0)
        {
             always=TRUE;
             ip++;
             continue;
        }
        if (strcmp(argv[ip],"-o")==0)
        {
            ip++;
            fout=TRUE;
            ofile.open(argv[ip++]);
            continue;
        }
        if (p==0) p=argv[ip++];
        else
        {
            cout << "Error in command line" << endl;
            return 0;
        }
    }

    if (!prime(p))
    {
        int incr=0;
        cout << "That number is not prime!" << endl;
        if (dir)
        {
            cout << "Looking for next lower prime" << endl;
            p-=1; incr++;
            while (!prime(p)) { p-=1;  incr++; }
            cout << "Prime P = P-" << incr << endl;
        }
        else
        {
            cout << "Looking for next higher prime" << endl;
            p+=1; incr++;
            while (!prime(p)) { p+=1;  incr++; }
            cout << "Prime P = P+" << incr << endl;
        }
        cout << "Prime P = " << p << endl;
    }
    if (p<100)
    {
        cout << "Prime is too small - use another method!" << endl;
        return 0;
    }
    if (bits(p)>2048)
    {
        cout << "Prime is too big - sorry" << endl;
        return 0;
    }


    Big W,V,K,r1,r2,ord,rmin;

    if (k==0) rmin=1;
    else      rmin=(p-2*sqrt(p))/k;
    if (rmin==0) 
    {
        cout << "Bad k co-factor value" << endl;
        return 0;
    }

    W=sqrt(p)+1;
    K=(W*W)/rmin;

    if (!suppress) cout << "P mod  8 = " << p%8 << endl;
    if (!suppress) cout << "P is " << bits(p) << " bits long" << endl;
    if (!suppress) cout << "precomputations..." << endl;

    mirexit();

    if (m<4) m=4;

    precision=(1<<m);
    mip=mirsys(precision+2,0);     // restart with new precision
    setprecision(m);
    if (!suppress) cout << "precision in bits = " << precision*MIRACL << endl;
    gprime(65536);
    mip->RPOINT=ON;

    Complex lam;

    Float Fi2[7];
    Float pi24;

    pi24=fpi()/24; 
    lam=exp(Complex((Float)0,pi24));

    Fi2[0]=1;
    Fi2[2]=reciprocal(nroot((Float)2,3)); // pow((Float)2,Float(-1,3));
    Fi2[3]=reciprocal(sqrt((Float)2));    // pow((Float)2,Float(-1,2));
    Fi2[6]=(Float)1/2;

    if (!suppress) cout << "finding a curve..." << endl;

    for (D=SD;;D++)
    {
        if (three && D==3) continue;
        if (!isaD(D,p%8,K)) continue;
        if (jacobi(p-(Big)D,p)==-1) continue;
        good=TRUE;

// A.14.2.3
        for (i=1;;i++)
        {
            unsigned long sp=mip->PRIMES[i];
            if (D==sp || sp*sp>D) break;
            if (D%sp==0 && jacobi(p,(Big)sp)==-1)
            {
                good=FALSE;
                break;
            }
        }
        if (!good) continue;
        if (!isacm(p,D,W,V)) continue;

        r1=p+1+W;
        r2=p+1-W;

        if (k==0) ord=r1;
        else      
        {
            ord=trial_divide(r1);
            if (!prime(ord) && r1%k==0) ord=r1/k;    
        }
        if (ord==1) ord=r1;

        if (ord>=rmin && (k==0 || prime(ord))) 
            get_curve(lam,Fi2,ofile,r1,r2,ord,D,p,W,m,always);

        if (k==0) ord=r2;
        else      
        {
            ord=trial_divide(r2);
            if (!prime(ord) && r2%k==0) ord=r2/k;    
        }
        if (ord==1) ord=r2;

        if (ord>=rmin && (k==0 || prime(ord))) 
            get_curve(lam,Fi2,ofile,r2,r1,ord,D,p,W,m,always);

        if (D==1)
        {
            r1=p+1+V;
            r2=p+1-V;
            if (k==0) ord=r1;
            else      
            {
                ord=trial_divide(r1);
                if (!prime(ord) && r1%k==0) ord=r1/k;
            }
            if (ord==1) ord=r1;
            if (ord>=rmin && (k==0 || prime(ord))) 
                get_curve(lam,Fi2,ofile,r1,r2,ord,D,p,W,m,always);
 
            if (k==0) ord=r2;
            else      
            {
                ord=trial_divide(r2);
                if (!prime(ord) && r2%k==0) ord=r2/k;
            }
            if (ord==1) ord=r2;
            if (ord>=rmin && (k==0 || prime(ord))) 
                get_curve(lam,Fi2,ofile,r2,r1,ord,D,p,W,m,always);
            
        }
        if (D==3)
        {
            r1=p+1+(W+3*V)/2;
            r2=p+1-(W+3*V)/2;
            if (k==0) ord=r1;
            else 
            {
                ord=trial_divide(r1);
                if (!prime(ord) && r1%k==0) ord=r1/k;
            }
            if (ord==1) ord=r1;
            if (ord>=rmin && (k==0 || prime(ord))) 
                get_curve(lam,Fi2,ofile,r1,r2,ord,D,p,W,m,always);

            if (k==0) ord=r2;
            else 
            {
                ord=trial_divide(r2);
                if (!prime(ord) && r2%k==0) ord=r2/k;
            }
            if (ord==1) ord=r2;
            if (ord>=rmin && (k==0 || prime(ord))) 
                get_curve(lam,Fi2,ofile,r2,r1,ord,D,p,W,m,always);

            r1=p+1+(W-3*V)/2;
            r2=p+1-(W-3*V)/2;
            if (k==0) ord=r1;
            else 
            {
                ord=trial_divide(r1);
                if (!prime(ord) && r1%k==0) ord=r1/k;
            }
            if (ord==1) ord=r1;
            if (ord>=rmin && (k==0 || prime(ord))) 
                get_curve(lam,Fi2,ofile,r1,r2,ord,D,p,W,m,always);

            if (k==0) ord=r2;
            else 
            {
                ord=trial_divide(r2);
                if (!prime(ord) && r2%k==0) ord=r2/k;
            }
            if (ord==1) ord=r2;
            if (ord>=rmin && (k==0 || prime(ord))) 
                get_curve(lam,Fi2,ofile,r2,r1,ord,D,p,W,m,always);
        }
    }
    cout << "No satisfactory curve found" << endl;
    return 0;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
波多野结衣的一区二区三区| 久久国产成人午夜av影院| 欧美mv日韩mv亚洲| 欧美精品一二三区| 欧亚一区二区三区| 91美女片黄在线| 岛国精品在线播放| 成人av资源在线| 粉嫩aⅴ一区二区三区四区五区 | 亚洲一二三区视频在线观看| 亚洲精品中文在线影院| 亚洲愉拍自拍另类高清精品| 亚洲午夜精品网| 婷婷综合在线观看| 美女mm1313爽爽久久久蜜臀| 激情综合网av| 国产一区二区三区免费看| 国产成人三级在线观看| 不卡一二三区首页| 在线观看91精品国产入口| 欧美电影一区二区| 久久亚区不卡日本| 亚洲欧洲性图库| 午夜精品成人在线| 国产精品 日产精品 欧美精品| 成人一级黄色片| 色噜噜狠狠成人中文综合 | 亚洲高清久久久| 日韩不卡手机在线v区| 国产精品一区二区久激情瑜伽| 99re66热这里只有精品3直播 | 欧美一区二区免费观在线| 精品美女在线观看| 亚洲色图.com| 青青草视频一区| proumb性欧美在线观看| 91精品福利在线一区二区三区| 久久精品视频在线免费观看| 亚洲精品乱码久久久久久久久| 久久精品国产精品青草| 99久久99久久综合| 精品欧美一区二区久久| 亚洲精品中文字幕在线观看| 久久狠狠亚洲综合| 91福利视频在线| 久久你懂得1024| 丝袜脚交一区二区| 97se亚洲国产综合自在线| 精品免费一区二区三区| 亚洲主播在线播放| 99久久久久久99| 2024国产精品视频| 蜜臀av性久久久久av蜜臀妖精| 色综合天天狠狠| 欧美国产日韩一二三区| 久久精品国产99国产| 欧美少妇bbb| 亚洲欧美国产77777| 成人网在线免费视频| 91麻豆精品国产| 国产精品国产三级国产aⅴ原创| 久久精品国产99久久6| 91麻豆精品国产91久久久更新时间| 成人免费视频在线观看| 国产精品一区免费在线观看| 欧美大片国产精品| 秋霞电影网一区二区| 欧美日韩黄色一区二区| 亚洲精品少妇30p| 99久久综合狠狠综合久久| 亚洲国产精品成人久久综合一区| 激情综合网av| 2020国产精品自拍| 久久不见久久见免费视频1| 欧美精品aⅴ在线视频| 亚洲电影在线播放| 欧美艳星brazzers| 午夜视频在线观看一区二区| 99精品1区2区| 亚洲精品国产成人久久av盗摄 | 日韩成人免费看| 欧美精品乱人伦久久久久久| 午夜精品福利久久久| 91精品国产综合久久久久久久久久 | 日韩欧美国产综合在线一区二区三区| 偷拍自拍另类欧美| 日韩美一区二区三区| 久久国产精品99久久人人澡| 久久这里只精品最新地址| 激情小说欧美图片| 欧美国产97人人爽人人喊| 不卡av免费在线观看| 亚洲日本va在线观看| 欧美伊人精品成人久久综合97| 无吗不卡中文字幕| 26uuu欧美| 99精品欧美一区二区三区小说 | 91精品国产综合久久久久久久| 石原莉奈在线亚洲二区| 欧美mv和日韩mv国产网站| 高清不卡在线观看av| 一区二区三区免费观看| 在线成人免费视频| 国产成人综合精品三级| 亚洲欧美日韩在线| 日韩一区二区三区四区| 国产成人免费在线视频| 亚洲国产综合91精品麻豆| 日韩欧美成人午夜| 色综合久久综合网97色综合| 日本va欧美va瓶| 国产精品污网站| 欧美日韩在线电影| 国产乱对白刺激视频不卡| 亚洲男女毛片无遮挡| 日韩精品一区二区三区蜜臀 | 亚洲综合激情另类小说区| 精品理论电影在线观看 | 石原莉奈在线亚洲三区| 国产欧美一区视频| 欧美日韩精品福利| 成人avav影音| 九九久久精品视频| 亚洲成a人在线观看| 国产精品网友自拍| 日韩一区二区在线播放| 色999日韩国产欧美一区二区| 精品一二三四区| 亚洲国产一区视频| 亚洲色图欧美在线| 亚洲精品一区二区在线观看| 欧美日韩极品在线观看一区| av影院午夜一区| 国产精品69久久久久水密桃| 日韩国产在线观看一区| 一区二区三区 在线观看视频| 日本一区免费视频| 精品国产一区二区三区久久影院| 欧美日韩日日骚| 91国产视频在线观看| 99国产精品久久| 成人国产一区二区三区精品| 国产一区视频网站| 久久成人精品无人区| 美女视频黄a大片欧美| 午夜伦理一区二区| 亚洲图片欧美色图| 亚洲小说欧美激情另类| 亚洲一区二区三区影院| 亚洲美女屁股眼交| 18欧美乱大交hd1984| 一区在线观看视频| 国产精品国产精品国产专区不蜜| 久久精品夜色噜噜亚洲a∨| wwww国产精品欧美| 久久综合国产精品| 久久久精品2019中文字幕之3| 久久在线观看免费| 亚洲国产精品传媒在线观看| 国产精品麻豆视频| 亚洲色图都市小说| 午夜精品一区二区三区免费视频 | 精品一区二区三区不卡| 久久超碰97人人做人人爱| 精品亚洲porn| 高清免费成人av| 91在线一区二区三区| 欧美亚洲动漫精品| 欧美一区二区三区的| 久久久综合激的五月天| 欧美激情在线一区二区| 国产精品久久久久久久久搜平片| 中文字幕一区日韩精品欧美| 亚洲婷婷综合色高清在线| 亚洲午夜电影在线观看| 久久精品国产精品亚洲精品| 国产电影一区二区三区| 色悠悠久久综合| 337p亚洲精品色噜噜| 久久色.com| 亚洲免费在线电影| 男女激情视频一区| av午夜一区麻豆| 8x福利精品第一导航| 国产女主播一区| 一区二区三区在线免费观看| 日韩va欧美va亚洲va久久| 国产jizzjizz一区二区| 欧美亚洲国产一区二区三区| 久久综合久久综合久久综合| 亚洲特黄一级片| 免费成人av在线| 91在线国产观看| 2020国产精品| 亚洲成av人片在线| 成人免费黄色在线| 日韩一区二区在线观看| 亚洲人精品一区| 韩国三级在线一区| 欧美日韩成人综合在线一区二区|