modexp.h

来自「RSA的最重要特色在于双密钥」· C头文件 代码 · 共 25 行

H
25
字号
/*
    modexp.h
    handle the Modexp calculation ((a^p)%m) using Montgomery algorithm (O(logn))
*/

#ifndef _MODEXP_H
#define _MODEXP_H

#define BIGINT unsigned long long

BIGINT modexp(BIGINT a, BIGINT p, BIGINT m){
    if(p==0) return 1;
    BIGINT r=a%m;
    BIGINT k=1;
    while (p>1){
        if ((p&1)!=0)
            k=(k*r)%m;
        r=(r*r)%m;
        p>>=1;
    }
    return (r*k)%m;
}

#endif /*_MODEXP_H*/

⌨️ 快捷键说明

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