找回密码
 欢迎注册
楼主: mathe

[建议] 在灌水版建立一个博弈版块如何?

[复制链接]
发表于 2008-5-6 08:24:35 | 显示全部楼层
在二次筛破解中

大概一天内能分解掉
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-5-6 08:26:42 | 显示全部楼层
那看来难度大了一些。主要被加密的数据我直接用ASCII码表示,大小稍微有点长。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-5-6 08:33:37 | 显示全部楼层
这个前面就是通过HugeCalc产生的,代码如下:
  1.     integer p,q;
  2.     p.GeneratePrime(150);
  3.     q.GeneratePrime(148);
  4.     integer n(p*q);
  5.     integer m((p-1)*(q-1));
  6.     integer d;
  7.     d.Random(10);
  8.     integer c;
  9.     while(c.Gcd(m,d)!=1){
  10.         d++;
  11.     }
  12.     integer x(strbuf);
  13.     integer y;
  14.     y.PowMod(x,d,n);
  15.     printf("x^%s=%s(mod %s)\n",d.GetStrRadix(10,NULL,FS_NORMAL), y.GetStrRadix(10,NULL,FS_NORMAL),n.GetStrRadix(10,NULL,FS_NORMAL));
复制代码
不过破解使用HugeCalc应该还是不够的(上面integer定义为CHugeIntX)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-6 08:42:21 | 显示全部楼层
HugeCalc 为加解密字符串直接提供了一组函数:
将待加密字串以内码方式复制为超大整数:
CHugeIntX& CHugeIntX::SetText( CONST LPCTSTR lpszText );


将超大整数以内码方式转换为解密字串:
CONST LPCTSTR CHugeIntX::GetText( VOID ) CONST;


  • 该组函数为数论和加解密研究提供了极大便利;它的一般调用流程是:SetText() --> 加密 --> 解密 --> GetText()
  • 在MBCS系统中,内码以单字节切分;在UNICODE系统中,内码以双字节切分
  • 顺序:从字串尾部由右至左对应于超大整数的低位到高位


更详细的内容,参见帮助文档 HugeCalc.chm 相关页面。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-6 08:43:25 | 显示全部楼层
这么大的数
ECM肯定不行
NFS不如QS
所以铁定是用二次筛

刚算了,差不多正好是24小时
=======================
我服务器设了三天重新启动一次
只要别超过三天就好
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-5-6 08:44:42 | 显示全部楼层
呀,我还专门写了个转化的代码,是否和你的一致?
  1. void prepare_input()
  2. {
  3.     int i;
  4.     strbuf[0]='0';
  5.     strbuf[1]='x';
  6.     for(i=0;i<strlen(SRC_STR);i++){
  7.         char c=SRC_STR[i];
  8.         char low=c&0xf;
  9.         char high=(c>>4)&0xf;
  10.         if(low<10){
  11.             low=low+'0';
  12.         }else{
  13.             low=low-10+'a';
  14.         }
  15.         if(high<10){
  16.             high=high+'0';
  17.         }else{
  18.             high=high-10+'a';
  19.         }
  20.         strbuf[2*i+2]=low;
  21.         strbuf[2*i+3]=high;
  22.     }
  23.     strbuf[2*i+2]='\0';
  24. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-5-6 08:50:33 | 显示全部楼层
如果下面这个难度如何?
signature^677=6480574336854794003779793438625525766955881755024507239921
(mod 23062496730092690709353215131843843057725682565268421456019)

[ 本帖最后由 mathe 于 2008-5-6 08:59 编辑 ]
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-6 08:52:58 | 显示全部楼层
原帖由 mathe 于 2008-5-6 08:44 发表
呀,我还专门写了个转化的代码,是否和你的一致?


似乎 low、high 存储顺序与我的颠倒了。

RSA 源代码可以参考安装包中的 \HugeCalc\testDLL\src\RSATool\
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-5-6 08:56:28 | 显示全部楼层
的确弄倒了,我颠倒一下,不过这里的签名就不修改了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-6 09:25:04 | 显示全部楼层
游客,本帖隐藏的内容需要积分高于 3000 才可浏览,您当前积分为 0


[ 本帖最后由 mathe 于 2008-5-6 09:44 编辑 ]
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-3-29 04:59 , Processed in 0.041257 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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