免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: tyc611
打印 上一主题 下一主题

[算法] AES密码算法的实现细节 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-08-05 22:06 |只看该作者
赞楼主。

论坛徽章:
0
12 [报告]
发表于 2007-08-06 00:18 |只看该作者
他说的是另外一个层面的安全问题,mlock无非就是不换页到硬盘嘛,和算法安全本身没有关联。即使是换页到硬盘没有权限也打不开更别说读数据了。

AES本身的安全性还是可以的,楼主的代码质量也很好!
不复杂。

man mlock
看看就明白了,敏感数据必须禁止分页。

另外,凡是写入过敏感数据的内存,释放前都不要忘了bzero一下。

谢谢,学习经验了

论坛徽章:
0
13 [报告]
发表于 2011-11-15 00:30 |只看该作者
楼主,再不了现在?

论坛徽章:
0
14 [报告]
发表于 2013-03-09 23:28 |只看该作者
本帖最后由 zyla 于 2013-03-10 00:00 编辑

回复 1# tyc611

楼主的工程不错!

只不过如果改成加密文件的话,要注意只处理前面16位哦,呵呵…

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
15 [报告]
发表于 2013-03-10 16:57 |只看该作者
本帖最后由 yulihua49 于 2013-03-10 17:10 编辑
醉卧水云间 发表于 2007-08-05 12:23
怎么个说法?你破解了AES?

AES是否规定了最后一包不满时需填充?满时必须加一空包?填充符是0X00?
暴力破解最关键的就是正确性判决,你给了我一个依据:
只要最后一个或多个字节是0X00,那很可能成功了。
如果这个电文恰好最后整包是0X00构成,那就可以分析密钥了。

一个小故事,当年图灵破译enigma密码,一次就是因为德军没事总是在电文末尾加15个X,就完蛋了。
重复和冗余是密码学的大敌,它违背了。可能是人家留的后门,美国不允许完善的密码。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
16 [报告]
发表于 2013-03-11 10:55 |只看该作者
本帖最后由 yulihua49 于 2013-03-11 11:01 编辑
tyc611 发表于 2007-08-04 17:56
[ 本帖最后由 tyc611 于 2007-8-20 21:55 编辑 ]

C++可移植性太差了,这个程序弄到linux,怎么也玩不转:
  1. g++    -c -o aestest.o aestest.cpp //main.cpp改aestest.cpp了
  2. In file included from aestest.cpp:12:
  3. AesArrays.h: In function ‘void dumpData(std::ostream&, const char*, T*, size_t, size_t)’:
  4. AesArrays.h:36: 错误:‘ios_base’未声明
  5. AesArrays.h:36: 错误:expected ‘;’ before ‘state’
  6. AesArrays.h:41: 错误:expected unqualified-id before string constant
  7. AesArrays.h:41: 错误:expected ‘;’ before string constant
  8. AesArrays.h:48: 错误:expected unqualified-id before string constant
  9. AesArrays.h:48: 错误:expected ‘;’ before string constant
  10. AesArrays.h:51: 错误:‘state’在此作用域中尚未声
复制代码
难怪坛子里老是有人扁C++,这类通用的软件最好不用C++。。。。。
就是这个:
  1. ios_base::fmtflags state = os.flags(ios::hex);
复制代码
怎么改?

论坛徽章:
0
17 [报告]
发表于 2013-03-11 12:48 |只看该作者
yulihua49 发表于 2013-03-10 16:57
AES是否规定了最后一包不满时需填充?满时必须加一空包?填充符是0X00?
暴力破解最关键的就是正确性判决 ...


你说的这些问题都是密码学方面的常识,设计算法的人早就考虑到了。

加密算法可以采用 CBC / OFB 等不同的加密模式来避免。

http://zh.wikipedia.org/zh-cn/%E ... C%E6%A8%A1%E5%BC%8F

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
18 [报告]
发表于 2013-03-14 16:23 |只看该作者
pscc0001 发表于 2013-03-11 12:48
你说的这些问题都是密码学方面的常识,设计算法的人早就考虑到了。

加密算法可以采用 CBC / OFB 等不 ...

工作模式毕竟是相对容易解开的。最终落实到解密包,那最后一包的填充物就成了指路标。

论坛徽章:
0
19 [报告]
发表于 2013-03-15 08:16 |只看该作者
yulihua49 发表于 2013-03-14 16:23
工作模式毕竟是相对容易解开的。最终落实到解密包,那最后一包的填充物就成了指路标。


为什么这么说啊?通过工作模式,末尾填充的 0 可以有效地和前面的所有数据混淆,进而不可辨识。

即使你知道它们都是 0,对于解密也没有什么帮助。

实际上,不要说末尾填充的 0,就是全部数据都是 0,用 AES 通过适当的方式加密后,只要不知道密码,
你不用暴力方法也解不出来。

你的这些问题都是数学家早就考虑过的问题,不知道你到底在纠结些什么。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
20 [报告]
发表于 2013-03-15 11:30 |只看该作者
pscc0001 发表于 2013-03-15 08:16
为什么这么说啊?通过工作模式,末尾填充的 0 可以有效地和前面的所有数据混淆,进而不可辨识。

即使 ...

好吧,暂时就这样,再考虑考虑。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP