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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? process.cpp

?? 比較新的功能強(qiáng)大的rsa算法源代碼,方便使用.
?? CPP
字號(hào):
//
// Program to pre-process the .raw file of modular polynomials
// to produce a .pol file, with coefficients reduced mod p
//
// .pol file format
// <modulus>,<prime>,<1st coef.>,<1st power of X>,<1st power of Y>,<2nd coeff>..
// Each polynomial ends with zero powers of X and Y
//
// Copyright Shamus Software Ltd., 1999
//

#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstring>
#include "big.h"

using namespace std;

Miracl precision=1000;

// Code to parse formula in command line
// This code isn't mine, but its public domain
// Shamefully I forget the source
//
// NOTE: It may be necessary on some platforms to change the operators * and #
//

#if defined(unix)
#define TIMES '.'
#define RAISE '^'
#else
#define TIMES '*'
#define RAISE '#'
#endif

Big tt;
static char *ss;

void eval_power (Big& oldn,Big& n,char op)
{
        if (op) n=pow(oldn,toint(n));    // power(oldn,size(n),n,n);
}

void eval_product (Big& oldn,Big& n,char op)
{
        switch (op)
        {
        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 (void)
{
        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 (*ss==' ')
        ss++;
        if (*ss=='-')    /* Unary minus */
        {
        ss++;
        minus=1;
        }
        else
        minus=0;
        while (*ss==' ')
        ss++;
        if (*ss=='(' || *ss=='[' || *ss=='{')    /* Number is subexpression */
        {
        ss++;
        eval ();
        n=tt;
        }
        else            /* Number is decimal value */
        {
        for (i=0;ss[i]>='0' && ss[i]<='9';i++)
                ;
        if (!i)         /* No digits found */
        {
                cout <<  "Error - invalid number" << endl;
                exit (20);
        }
        op=ss[i];
        ss[i]=0;
        n=atoi(ss);
        ss+=i;
        *ss=op;
        }
        if (minus) n=-n;
        do
        op=*ss++;
        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]);
        tt=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)
{
    ofstream ofile;
    ifstream ifile;
    int ip,lp,nx,ny,max;
    Big p,c;
    BOOL gotP,gotI,gotO,dir;
    int Base;
    miracl *mip=&precision;
    set_io_buffer_size(2048);
    argv++; argc--;
    if (argc<1)
    {
        cout << "incorrect usage" << endl;
        cout << "Program pre-processes Modular Polynomials with respect" << endl;
        cout << "to a given prime modulus" << endl;
        cout << "process <prime modulus P> <-i input> <-o output>" << endl;
        cout << "OR" << endl;
        cout << "process <formula for P>   <-i input> <-o output> " << endl;
#if defined(unix)
        cout << "e.g. process -f 2^192-2^64-1 -i mueller.raw -o p192.pol" << endl;
#else
        cout << "e.g. process -f 2#192-2#64-1 -i mueller.raw -o p192.pol" << endl;
#endif
        cout << "processes the file mueller.raw to p192.pol for the given modulus" << endl;
        cout << "To input P in Hex, precede with -h" << endl;
        cout << "To search downwards for a prime, use flag -d" << endl;
        cout << "Use flag -m <max> to limit polynomials processed to those" << endl;
        cout << "associated with primes less than or equal to <max>" << endl;
        cout << "\nFreeware from Shamus Software, Dublin, Ireland" << endl;
        cout << "Full C++ source code and MIRACL multiprecision library available" << endl;
        cout << "http://indigo.ie/~mscott for details" << endl;
        cout << "or email mscott@indigo.ie" << endl;
        return 0;
    }

    ip=0;
    gprime(1000);
    gotP=gotI=gotO=dir=FALSE;
    p=0;
    max=0;
    Base=10;
    while (ip<argc)
    { 
        if (!gotP && strcmp(argv[ip],"-f")==0)
        {
            ip++;
            if (!gotP && ip<argc)
            {

                ss=argv[ip++];
                tt=0;
                eval();
                p=tt;
                gotP=TRUE;
                continue;
            }
            else
            {
                cout << "Error in command line" << endl;
                return 0;
            }
        }
        if (!gotO && strcmp(argv[ip],"-o")==0)
        {
            ip++;
            if (ip<argc)
            {
                gotO=TRUE;
                ofile.open(argv[ip++]);
                continue;
            }
            else
            {
                cout << "Error in command line" << endl;
                return 0;
            }
        }
        if (!gotI && strcmp(argv[ip],"-i")==0)
        {
            ip++;
            if (ip<argc)
            {
                gotI=TRUE;

                ifile.open(argv[ip],ios::in);

                if (!ifile)
                {
                    cout << "Input file " << argv[ip] << " could not be opened" << endl;
                    return 0;
                }
                ip++;
                continue;
            }
            else
            {
                cout << "Error in command line" << endl;
                return 0;
            }
        }
        if (strcmp(argv[ip],"-d")==0)
        {
            ip++;
            dir=TRUE;
            continue;
        }
        if (strcmp(argv[ip],"-m")==0)
        {
            ip++;
            if (ip<argc)
            {
                max=atoi(argv[ip++]);
                continue;
            }
            else
            {
                cout << "Error in command line" << endl;
                return 0;
            }
        }
        if (strcmp(argv[ip],"-h")==0)
        {
            ip++;
            Base=16;
            continue;
        }
        if (!gotP)
        {
            mip->IOBASE=Base;
            p=argv[ip++];
            mip->IOBASE=10;
            gotP=TRUE;
            continue;
        }
        cout << "Error in command line" << endl;
        return 0;
    }
    if (!gotP || !gotI || !gotO)
    {
        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;
    }
    cout << "P mod 24 = " << p%24 << endl;
    cout << "P is " << bits(p) << " bits long" << endl;

    cout << "Prime     " << flush;   
    ofile << p << endl;
    forever
    {
        ifile >> lp;
        if (ifile.eof()) break;
        if (max>0 && lp>max) break;

        cout << "\b\b\b\b";
        cout << setw(4) << lp << flush;
        ofile << lp << endl;
        forever
        {
            ifile >> c >> nx >> ny;
  
   // reduce coefficients mod p
            c=c%p;

            ofile << c << endl;
            ofile << nx << endl;
            ofile << ny << endl;

            if (nx==0 && ny==0) break;
        }
    }
    cout << endl;
    return 0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97精品国产露脸对白| 色网站国产精品| 一个色妞综合视频在线观看| 日韩无一区二区| av一区二区三区黑人| 久久se精品一区二区| 一区二区三区免费观看| 国产日本亚洲高清| 884aa四虎影成人精品一区| 91在线国产观看| 国产综合色视频| 日本亚洲天堂网| 亚洲午夜免费视频| 国产精品国产三级国产aⅴ入口 | 麻豆国产精品777777在线| 中文字幕在线不卡| 久久久久国产精品人| 69p69国产精品| 欧美网站一区二区| 91麻豆视频网站| 国产.欧美.日韩| 激情综合色综合久久综合| 偷拍亚洲欧洲综合| 夜色激情一区二区| 亚洲人成电影网站色mp4| 久久精品欧美一区二区三区麻豆 | 国产欧美精品一区| 日韩欧美国产成人一区二区| 欧美日韩国产免费一区二区| 99r国产精品| 波多野结衣中文字幕一区二区三区| 久久se精品一区精品二区| 日本va欧美va精品| 婷婷亚洲久悠悠色悠在线播放| 尤物视频一区二区| 亚洲精品乱码久久久久久日本蜜臀| 国产精品无遮挡| 国产三级一区二区三区| 久久久久久久久久看片| 国产午夜亚洲精品不卡| 久久人人超碰精品| 久久人人97超碰com| 久久久久国产精品免费免费搜索| 九色porny丨国产精品| 国产高清无密码一区二区三区| 亚洲激情综合网| 国产精品视频观看| 中文字幕第一区第二区| 国产精品人人做人人爽人人添| 欧美激情综合在线| 亚洲欧洲精品天堂一级| 自拍av一区二区三区| 亚洲久草在线视频| 亚洲福利国产精品| 日本在线不卡视频一二三区| 狠狠色综合日日| 粉嫩嫩av羞羞动漫久久久 | 精品福利视频一区二区三区| 日韩免费福利电影在线观看| 精品福利在线导航| 中文字幕在线不卡一区二区三区| 亚洲免费观看高清完整版在线观看 | 成人深夜在线观看| 91视频国产观看| 欧美美女喷水视频| 精品欧美久久久| 日本一区二区三区dvd视频在线 | 五月综合激情网| 久久精品国产第一区二区三区| 国产精品正在播放| 99久久99久久精品国产片果冻 | 欧美日韩国产大片| 亚洲精品一区二区三区影院 | 一区二区三区在线视频播放| 午夜精品一区二区三区免费视频 | 天堂av在线一区| 国产乱码精品一区二区三区忘忧草 | 久久精品国产亚洲高清剧情介绍| 国产精选一区二区三区| caoporn国产一区二区| 欧美日韩精品免费观看视频| 欧美精品一区二区三区在线 | 国产日韩精品久久久| 亚洲在线免费播放| 国产综合色产在线精品| 99久久国产综合精品色伊 | 中文字幕佐山爱一区二区免费| 日韩精品亚洲一区二区三区免费| 国产成人一区在线| 欧美三级日韩在线| 中文字幕第一区第二区| 亚洲.国产.中文慕字在线| 成人午夜在线播放| 欧美一区二区不卡视频| 亚洲婷婷在线视频| 精品一区二区三区视频| 日本高清不卡在线观看| 久久精品水蜜桃av综合天堂| 偷窥少妇高潮呻吟av久久免费| 丁香激情综合国产| 精品99一区二区三区| 亚洲国产综合色| 97久久精品人人做人人爽50路 | 制服丝袜中文字幕亚洲| 国产精品夫妻自拍| 极品少妇一区二区| 欧美精品久久天天躁| 国产精品久久久久久久浪潮网站| 麻豆成人91精品二区三区| 欧洲精品一区二区| 中文字幕视频一区二区三区久| 精一区二区三区| 91.xcao| 亚洲女子a中天字幕| 成人免费高清视频| 久久精品综合网| 韩国成人精品a∨在线观看| 欧美精品高清视频| 一级特黄大欧美久久久| 99久久久精品| 国产精品丝袜在线| 5月丁香婷婷综合| 一区二区在线免费观看| av资源站一区| 国产精品久久久久国产精品日日| 国产一区二区久久| www久久久久| 久热成人在线视频| 欧美成va人片在线观看| 奇米精品一区二区三区四区| 欧美人伦禁忌dvd放荡欲情| 亚洲国产人成综合网站| 色网站国产精品| 亚洲乱码国产乱码精品精小说 | 久久99久国产精品黄毛片色诱| 欧美三级电影在线观看| 亚洲一区二区黄色| 在线这里只有精品| 亚洲一区在线观看免费| 欧美又粗又大又爽| 亚洲成人综合网站| 6080国产精品一区二区| 免费精品99久久国产综合精品| 91精品黄色片免费大全| 久久国产婷婷国产香蕉| 精品免费国产一区二区三区四区| 蜜桃av一区二区三区电影| 欧美大片免费久久精品三p| 麻豆91在线播放| 国产亚洲一区二区在线观看| 国产91精品在线观看| 1024成人网| 欧美中文字幕不卡| 免费一区二区视频| 久久在线观看免费| caoporen国产精品视频| 一级做a爱片久久| 91精品国产综合久久婷婷香蕉| 毛片基地黄久久久久久天堂| 久久久久久毛片| 91老司机福利 在线| 婷婷成人激情在线网| 日韩精品中文字幕在线一区| 国产盗摄女厕一区二区三区| 综合久久综合久久| 91麻豆精品国产91久久久久| 国产在线视频精品一区| 亚洲人一二三区| 91麻豆精品91久久久久同性| 国产麻豆一精品一av一免费| 亚洲色图另类专区| 91精品蜜臀在线一区尤物| 国产精品69毛片高清亚洲| 亚洲天堂av老司机| 日韩一级免费一区| 国v精品久久久网| 亚洲gay无套男同| 久久久精品中文字幕麻豆发布| 91老司机福利 在线| 久久精品国产精品亚洲红杏| 中文字幕在线播放不卡一区| 91精品在线麻豆| 成人网在线播放| 天堂va蜜桃一区二区三区漫画版 | 午夜精品久久久久| 久久精品人人做人人综合 | 国产视频一区在线播放| 欧洲色大大久久| 国产999精品久久| 亚洲妇熟xx妇色黄| 日本一区二区三区四区| 7878成人国产在线观看| www.爱久久.com| 久久成人久久爱| 亚洲综合清纯丝袜自拍| 久久久三级国产网站| 欧美日韩国产高清一区| 97精品国产97久久久久久久久久久久| 美女在线视频一区| 亚洲午夜电影网|