首页
社区
课程
招聘
[讨论]用汇编开发看雪自己的Crypto算法库如何?
发表于: 2010-10-7 15:27 17413

[讨论]用汇编开发看雪自己的Crypto算法库如何?

2010-10-7 15:27
17413
利用看雪优秀的资源,开发自己的一套加密算法库如何?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (22)
雪    币: 21
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持啊!!!不过密码库的工程可不小
2010-10-7 22:17
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
3
有意思吗?密码版块的朋友都在研究什么呢?高手们拿点自己的东西出来才是真的!难道高手就只会放个电子书给别人下载?其实密码学比什么破解软件有意思多了。
2010-10-8 00:23
0
雪    币: 189
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
天易LOVE大牛早啊!赞同您的看法,要想成为世界顶级的Cracker,密码学是肯定要精通的!密码学修为才是小菜与大牛之间的区别!
2010-10-8 07:20
0
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
密码学基本上和数学有关,和计算机只是最后软件实现的问题。所有的密码研究都是数学课题吧。只是最后一步转为软件。而其他版块多是计算机迷在提问回答。
2010-10-8 08:41
0
雪    币: 998
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这段时间没有在搞密码算法的专项研究。主要是在研究密码攻击的专用芯片设计。密码学不是基本和数学有关,而是完全就是数学。数论,组合数学,量子物理,高等代数,离散数学。
2010-10-8 11:22
0
雪    币: 459
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
没意思。用C/C++内联汇编不好吗?纯汇编开发效率太低了。
2010-10-8 11:48
0
雪    币: 1262
活跃值: (775)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
为什么要汇编呢?移植性差,32位汇编,到x64上得重写。
2010-10-8 12:03
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
9
楼上几位都是密码学高手啊,我等菜鸟连高级语言都不会实现。有个小问题:Rijndael列混合变换如果用查表法,那个生成表的算法用了什么数学原理,玩汇编、硬件等的密码学前辈能否指点一二,谢谢
2010-10-8 12:56
0
雪    币: 21
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
顶一下。我觉的汇编还是有它的优势,体积和速度,我就有rsa的汇编实现。我目前做公钥算法研究,对分组了解不深,楼上的等等,肯定有人回答你的。天易想向你讨教指令执行时的控制问题。
2010-10-8 22:12
0
雪    币: 205
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
迟点我会公布一些成果的,stay tuned
2010-10-9 18:06
0
雪    币: 998
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
先计算x7x6..x0在GF(2^8)的逆,结果为y7y6..y0,然后进行如下运算,得到z7z6..z0

1 0 0 0 1 1 1 1 * y0 + 1 = z0
1 1 0 0 0 1 1 1 * y1 + 1 = z1
1 1 1 0 0 0 1 1 * y2 + 0 = z2
1 1 1 1 0 0 0 1 * y3 + 0 = z3  
1 1 1 1 1 0 0 0 * y4 + 0 = z4
0 1 1 1 1 1 0 0 * y5 + 1 = z5  
0 0 1 1 1 1 1 0 * y6 + 1 = z6
0 0 0 1 1 1 1 1 * y7 + 0 = z7   

那张表就是把z的结果写了进去,用x进行寻址。至于上述这个过程,你知道密码算法里线性的东西都是很可怕的,很容易被破解的。所以先做x->y的映射,由于这个映射是求GF上的逆,所以是非线性的。但单纯的求逆仍然含有不安全因素,所以做了y->z的映射。y的系数的选取仅仅是因为上述矩阵很简单,容易运算(每行都是上行的shift)。乘完之后加的那个列向量,原因是这样可以保证不会让x映射后仍然得到x或者得到x的补,提高安全性。
2010-10-10 03:33
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
13
谢谢,你说的是AES PROPOSAL RIJNDAEL 中26页的内容the  method to construct S-box,我说的是列混合变换如果不用XTIME的方法而用查表法那个构造表的算法如何理解,谢谢!终于碰到好心人了。
2010-10-10 16:30
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
14
密码学版块的朋友们有人知道吗?网上有个gen_table函数但好象是不正确的,只是水平太差看不出原理无法修改。学点东西很难啊!
2010-10-10 23:45
0
雪    币: 998
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
时差不同,讨论问题很费劲

以加密为例,说下大致思路:mc layer的操作是一个矩阵A与另一个由sr layer产生的矩阵B相乘。A的entries只可能是1,2,3。而B的每个entries都是一个字节,故范围是0~255。因此做这个的查找表,就是分别制作出0~255*1、0~255*2、0~255*3的表。这样在矩阵乘法的时候,首先由于A的规律(循环右移),你可以知道当前乘法应该去找*1的表还是*2的表还是*3的表。然后就是把B的元素做索引,到查找表里取值就是了。把需要用到的4次结果xor起来(i.e. GF上的"加法")就是mc结果矩阵中的一个entry.
解密表同理,先对A求GF上的逆,得到系数只可能是9,11,13,14。
我说的只是个大概思想,和实现可能有些出入,朦胧记得当初做芯片时是这样做的sram。好久没有搞aes的东西了。
Good luck.
2010-10-11 04:45
0
雪    币: 189
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
只能膜拜,无法学习!
2010-10-11 07:54
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
17
感谢programfan兄弟,我明白你的意思,但我感觉做3张表0~255*2,0~255*4,0~255*8就应该可以实现加密和解密时的列变换问题,抽空实践一下,从前辈身上学到不少东西,语言很严谨,理解很透彻而且乐于助人!论坛上遇到的不多。(注用3张表就可以了,花了半个小时调试通过)
2010-10-11 12:29
0
雪    币: 233
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
这个帖子很有意义啊!!!
2010-10-20 00:13
0
雪    币: 204
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
19
支持看雪开发自己的密码库,自己的用起来才放心!方便修改
2010-10-21 16:14
0
雪    币: 121
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
期待呀,开发出来用处很大呀!
2010-10-22 21:35
0
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
21
同意楼主的建议。
看雪密码学小组也成立一段时间了,可以说什么也没有做。

大家一起努力,合作开发一个看雪自己的密码学库。

我的建议是:大家可能都有各自的工作,业余时间也不多。大家可以一人负责一个模块,制定统一的接口。最后再合在一起讨论修改。
另外,我的想法是开源,注重效率,使用C语言和嵌入汇编,可以参考各种开源的密码学库。

不知道大家是个什么意见?
2010-10-23 19:01
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
期待出品哦..希望对有帮助!
2010-10-24 09:06
0
雪    币: 2096
活跃值: (100)
能力值: (RANK:420 )
在线值:
发帖
回帖
粉丝
23
希望这次能凝聚大家的力量,做出一点成果。
这件事先委由 asdfslw 等密版小俎成员力推,如需要进一步支持,我会尽力帮忙。
2010-10-24 16:35
0
游客
登录 | 注册 方可回帖
返回
//