首页
社区
课程
招聘
RSA源码
发表于: 2004-12-18 10:12 13146

RSA源码

2004-12-18 10:12
13146

这是我从PGP Opensource中提取然后改写的RSA源程序.各位可以编译看看,VC6工程.有任何意见和想法,可以发email给我.欢迎指教.希望我也能成为看学的一员.
使加密事业__--==>速度不错,因为是PGP老大的代码,所以很快,呵呵.不是我的功劳.我的目的是更加易懂和易用.上次完了上船文件,不好意思
发现放错地方了,斑竹可以将此贴,放在 密码分析学专题论坛 中么?
附件:RSAUtil.rar


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (20)
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
2
这个应该放到工具区里!
不过是好东西!
2004-12-18 10:54
0
雪    币: 216
活跃值: (101)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
所以还不是很了解这里的论坛结构 :(
我是搞游戏开发的,加密解密是我的业余业余业余爱好.是个菜鸟.
这里真是一个好地方,所以我想把我知道的和大家共享,为加解密做点儿贡献.
这个程序算 2048位的 素数对 在我的机器上 低于 5秒 (P4 28c)
2004-12-18 11:11
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
4
OK  转至密码学论坛
2004-12-18 17:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢,有时间研究研究
2004-12-18 17:52
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
6
RSA不是很懂,学习
谢谢楼主分享:)
2004-12-18 19:59
0
雪    币: 231
活跃值: (115)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
好多汇编啊:(
2004-12-18 21:59
0
雪    币: 3686
活跃值: (1036)
能力值: (RANK:760 )
在线值:
发帖
回帖
粉丝
8
所以速度会快点:)
2004-12-18 22:09
0
雪    币: 237
活跃值: (145)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
9
好厉害哦!!
2005-1-3 15:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
谢谢  呵呵 。!!!
2005-1-13 17:22
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
BYTE by1[8192];
                                BYTE by2[8192];
                                for (int i = 0; i < sizeof(by1); i++)
                                {
                                        by1[i] = i & 0xff;
                                }
                               
                                int bytes = BITS2BYTES(bnBits(&m_rsa.n));
                                bytes = min(bytes, sizeof(by1));
                               
                                CBigNumber bn;
                                m_rsa.rsaPrivateEncrypt(&bn, by1, bytes - 8);

                                memset(by2, 0, sizeof(by2));
                                nResult = m_rsa.rsaPublicDecrypt(by2, sizeof(by2), &bn) >= 0;
                                nResult = 0 == memcmp(by1, by2, bytes - 8);
这是程序中void CRSAUtilDlg::OnButtonGenerateNow() 中的一段
我想请问 在生成这些数的过程中为什么会有 加解密的 过程,而且
还是用公匙解密,私匙加密,为什么,请各位赐教?
2005-1-14 17:02
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这些代码都是来自楼主的附件 RSAUtil.rar 中
2005-1-14 17:24
0
雪    币: 216
活跃值: (101)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
最初由 busy 发布
BYTE by1[8192];
BYTE by2[8192];
for (int i = 0; i < sizeof(by1); i++)
{
by1 = i & 0xff;
........


是这样的,RSA算法是为了找到两个互质的大素数,而生成质数的过程生成的数不一定一定是质数,可能有99.99999...可能是质数,为了验证结果,使用了加密解密的过程。
2005-1-18 00:24
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
谢谢,不过我实菜鸟,我不明白为什么如果是非素数,便可以用加密解密的办法检查出来,在这里他为什么会用私匙加密而用公匙解密,而不用正常的公匙加密私匙解密?难道检查的时候必须用私匙加密而用公匙解密?
2005-1-18 09:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ASM
15
有没有人试过这段代码?
好像不支持大E?这样再快也没用
2005-1-25 06:48
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
这个支持很大的E 实际上P ,Q, N, D, E都是同样上限的,因为都使用了CBigNumber这个类,所以大E应该支持
2005-1-27 11:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ASM
17
我送了个256位E进去求1024位P、Q,程序处于假死状态……
别的库最多不到10秒就出来了……
而且代码写的也有点……
2005-1-27 12:02
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
嗯,的确有问题,

int nResult = m_rsa.RsaKeyGen(e.AsInt(), _GenProcessing, this, &error);

BOOL CRSA::RsaKeyGen(unsigned pe, int (*progress)(void *arg, int c), void *arg, int *error)
{
        ASSERT(m_prand);
        e = pe;
        return _RsaKeyGen(m_prand, p, q, n, d, u, pe, progress, arg, error);

}
不知道为什么参数有unsigned pe 这样的定义,而且_RsaKeyGen的参数e也是unsigned 看来作者就不想支持大的e,也许因为安全性跟e关系不很大
2005-1-27 14:42
0
雪    币: 231
活跃值: (115)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
最初由 busy 发布
谢谢,不过我实菜鸟,我不明白为什么如果是非素数,便可以用加密解密的办法检查出来,在这里他为什么会用私匙加密而用公匙解密,而不用正常的公匙加密私匙解密?难道检查的时候必须用私匙加密而用公匙解密?

非素数加密后解密不能保证唯一性。
至于公钥和私钥完全是对等的,他们没有区别。
2005-1-31 20:50
0
雪    币: 333
活跃值: (369)
能力值: ( LV12,RANK:490 )
在线值:
发帖
回帖
粉丝
20
谢谢了,呵呵!我最近正在破一个用RSA加密算法的CreakMe
里面的代码好长喔,头都看大了,看原代码还是合算多了!
2005-2-28 01:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
我最近在找RSA的C++类,结果发现这个公钥加密死循环,修改后,公钥能加密,但不一定能解开!后来在她原来生成素数的地方加了公钥加密、私钥解密的测试!
但是不明白为什麽会这样!
哪位大大可以帮助调试一下,谢谢!
最近被RSA弄的一个头,两个大
2006-7-12 16:52
0
游客
登录 | 注册 方可回帖
返回
//