飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6088|回复: 22

[求助] 这个函数怎么求逆运算,谢谢

[复制链接]
  • TA的每日心情
    开心
    2019-2-26 11:14
  • 签到天数: 459 天

    [LV.9]以坛为家II

    发表于 2022-2-9 08:36:38 | 显示全部楼层 |阅读模式
    从一个软件分析中得到下面一个函数,伪代码如下
    [C++] 纯文本查看 复制代码
    RSA_POW_MOD(M,e,N)
    {
    	CONST = N-M;
    	CONST2= N-2;   
    	RSI =2;
    	RDI =M;
    	While(e>0)
    	{
    		if(e and 1 )
    		{
    			RSI = (RSI*RDI+CONST)  MOD N;
                    	RDI = (RDI*RDI+CONST2) MOD N;
                    	e >>= 1;
                             
    		
    		}
            	else
            	{
                    	RDI = (RSI*RDI+CONST)  MOD N;
                    	RSI = (RSI*RSI+CONST2) MOD N;
                    	e >>=1;
    	}
    
    	return RSI;
    
    }


    其中e=65537,只是用来保证循环的次数,已知RSI,e,N(N是一个大数),能不能求得M,谢谢


    来自群组: 一起玩游戏
    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2016-4-19 21:35
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2022-2-9 11:28:38 | 显示全部楼层

    点评

    https://xakep.ru/2018/05/16/total-commander-hack/ 请问一下表哥这个源码下载到了吗,现在不能下载了,如果有能不能发我一下,  详情 回复 发表于 2022-2-9 13:06
    谢谢表哥,666  详情 回复 发表于 2022-2-9 12:01

    评分

    参与人数 1威望 +2 飘云币 +2 收起 理由
    wgz001 + 2 + 2 谢谢表哥

    查看全部评分

    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-26 11:14
  • 签到天数: 459 天

    [LV.9]以坛为家II

     楼主| 发表于 2022-2-9 12:01:15 | 显示全部楼层
    wai1216 发表于 2022-2-9 11:28
    Lucas序列
    http://www.weidai.com/lucas.html
    https://eprint.iacr.org/2016/937.pdf

    谢谢表哥,666

    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-12-31 09:04
  • 签到天数: 508 天

    [LV.9]以坛为家II

    发表于 2022-2-9 13:06:03 | 显示全部楼层
    wai1216 发表于 2022-2-9 11:28
    Lucas序列
    http://www.weidai.com/lucas.html
    https://eprint.iacr.org/2016/937.pdf

    https://xakep.ru/2018/05/16/total-commander-hack/
    请问一下表哥这个源码下载到了吗,现在不能下载了,如果有能不能发我一下,[email protected]

    点评

    没有 如果是替换n 生成一对p&q 然后逆运算 应该就可以了 可能需要的代码 // 随机生成n https://github.com/weidai11/cryptopp/blob/master/luc.cpp#L133 // 计算v // Integer Lucas(const Integer &e, cons  详情 回复 发表于 2022-2-9 17:36
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-4-19 21:35
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2022-2-9 17:36:30 | 显示全部楼层
    本帖最后由 wai1216 于 2022-2-9 17:38 编辑
    wangwei628 发表于 2022-2-9 13:06
    https://xakep.ru/2018/05/16/total-commander-hack/
    请问一下表哥这个源码下载到了吗,现在不能下载了 ...

    没有
    如果是替换n 生成一对p&q 然后逆运算
    应该就可以了

    可能需要的代码
    // 生成p/q/n/u
    https://github.com/weidai11/cryptopp/blob/master/luc.cpp#L133
    // 计算v
    // Integer Lucas(const Integer &e, const Integer &pIn, const Integer &n)
    https://github.com/weidai11/cryptopp/blob/master/nbtheory.cpp#L819
    // Integer InverseLucas(const Integer &e, const Integer &m, const Integer &p, const Integer &q, const Integer &u)
    https://github.com/weidai11/cryptopp/blob/master/nbtheory.cpp#L1005

    点评

    好的,谢谢表哥  详情 回复 发表于 2022-2-9 19:24
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-1-14 07:44
  • 签到天数: 2716 天

    [LV.Master]伴坛终老

    发表于 2022-2-9 18:17:54 | 显示全部楼层
    这是要找私钥吗?N有多少位?不大的话直接分解N试试吧

    点评

    谢谢,RSA832,分解是不可能的了,想替换然后自己keygen  详情 回复 发表于 2022-2-9 18:28
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-26 11:14
  • 签到天数: 459 天

    [LV.9]以坛为家II

     楼主| 发表于 2022-2-9 18:28:18 | 显示全部楼层
    ps122 发表于 2022-2-9 18:17
    这是要找私钥吗?N有多少位?不大的话直接分解N试试吧

    谢谢,RSA832,分解是不可能的了,想替换然后自己keygen

    点评

    是有点大,只能替换了  详情 回复 发表于 2022-2-9 18:39
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-1-14 07:44
  • 签到天数: 2716 天

    [LV.Master]伴坛终老

    发表于 2022-2-9 18:39:17 | 显示全部楼层
    wgz001 发表于 2022-2-9 18:28
    谢谢,RSA832,分解是不可能的了,想替换然后自己keygen

    是有点大,只能替换了
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-12-31 09:04
  • 签到天数: 508 天

    [LV.9]以坛为家II

    发表于 2022-2-9 19:24:19 来自手机 | 显示全部楼层
    wai1216 发表于 2022-2-9 17:36
    没有
    如果是替换n 生成一对p&q 然后逆运算
    应该就可以了

    好的,谢谢表哥

    点评

    简单点话windows平台 点开cryptopp-master里的cryptest.sln 编译完成后 在cryptopp-master\test.cpp 找到main函数 修改为如下 可以验证lucas int CRYPTOPP_API main(int argc, char *argv[]) { CryptoPP::  详情 回复 发表于 2022-2-10 11:15
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-4-19 21:35
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2022-2-10 11:15:52 | 显示全部楼层
    本帖最后由 wai1216 于 2022-2-10 11:17 编辑

    简单点话windows平台 点开cryptopp-master里的cryptest.sln
    编译完成后
    在cryptopp-master\test.cpp
    找到main函数

    修改为如下 可以验证lucas
    [Plain Text] 纯文本查看 复制代码
    int CRYPTOPP_API main(int argc, char *argv[])
    {
            CryptoPP::Integer e("0x10001");
            CryptoPP::Integer p("0x7F103E504ACF2A8A8B9C2C4DFB2F3441DEF4B73E47B611BFED43DF24737320909136DB6BA304DB0867C7A9334C6C44F9EA08DE41DEAC3EC2EEE61CBFC100CB1ADE426EA5C602D7FE0590A299D6A2B536E716D267FA547041D677D6CEAAF7D94E053C281DFABA568F");
            CryptoPP::Integer n("0xAAD4474DC8387E81BB095D810F4F4F21D5D7CCC756E3D6E5DEE48AC000C25AA0EFAD0AD3A5AC46F15B50249597461BBB87CDC3F1BA37C17A9A207A3603E38E718F9927A5EB38005D8B72EAFDC63931C3D93C1FAD457A17CA85BEB40F3FA9152770DAC12E8E3B912D");
            CryptoPP::Integer c = CryptoPP::Lucas(e, p, n);
            std::cout << std::hex << c << std::endl;
    
            return CryptoPP::Test::scoped_main(argc, argv);
    }


    评分

    参与人数 1威望 +1 飘云币 +1 收起 理由
    wgz001 + 1 + 1 赞一个,这个帖子很给力!

    查看全部评分

    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表