无心人
发表于 2008-5-6 08:24:35
在二次筛破解中
大概一天内能分解掉
mathe
发表于 2008-5-6 08:26:42
那看来难度大了一些。主要被加密的数据我直接用ASCII码表示,大小稍微有点长。
mathe
发表于 2008-5-6 08:33:37
这个前面就是通过HugeCalc产生的,代码如下: integer p,q;
p.GeneratePrime(150);
q.GeneratePrime(148);
integer n(p*q);
integer m((p-1)*(q-1));
integer d;
d.Random(10);
integer c;
while(c.Gcd(m,d)!=1){
d++;
}
integer x(strbuf);
integer y;
y.PowMod(x,d,n);
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)
gxqcn
发表于 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小时
=======================
我服务器设了三天重新启动一次
只要别超过三天就好
mathe
发表于 2008-5-6 08:44:42
呀,我还专门写了个转化的代码,是否和你的一致?void prepare_input()
{
int i;
strbuf='0';
strbuf='x';
for(i=0;i<strlen(SRC_STR);i++){
char c=SRC_STR;
char low=c&0xf;
char high=(c>>4)&0xf;
if(low<10){
low=low+'0';
}else{
low=low-10+'a';
}
if(high<10){
high=high+'0';
}else{
high=high-10+'a';
}
strbuf=low;
strbuf=high;
}
strbuf='\0';
}
mathe
发表于 2008-5-6 08:50:33
如果下面这个难度如何?
signature^677=6480574336854794003779793438625525766955881755024507239921
(mod 23062496730092690709353215131843843057725682565268421456019)
[ 本帖最后由 mathe 于 2008-5-6 08:59 编辑 ]
gxqcn
发表于 2008-5-6 08:52:58
原帖由 mathe 于 2008-5-6 08:44 发表 http://images.5d6d.net/dz60/common/back.gif
呀,我还专门写了个转化的代码,是否和你的一致?
似乎 low、high 存储顺序与我的颠倒了。
RSA 源代码可以参考安装包中的 \HugeCalc\testDLL\src\RSATool\
mathe
发表于 2008-5-6 08:56:28
的确弄倒了,我颠倒一下,不过这里的签名就不修改了
无心人
发表于 2008-5-6 09:25:04
**** Hidden Message *****
[ 本帖最后由 mathe 于 2008-5-6 09:44 编辑 ]