您所在的位置: 首页 > 读书频道 > 安全 > 加密解密 >

1.6 开发工具

http://book.51cto.com  2007-08-10 15:48  Tom St Denis; Simon Johnson著 沈晓斌译  机械工业出版社华章公司  我要评论(0)
1.6 开发工具
纵观本书,我们使用了一些很容易获得的工具,例如适合X86 32位和64位平台以及ARMv4处理器的GNU Compiler Collection C 编译器(GCC)。之所以选择它们,是因为它们非常专业,可以免费使用并且对读者具有真正的价值。
书中出现的各种算法大部分是以可移植的C语言实现,尽可能地方便更多的读者来阅读下面的那些代码列表。这些代码列表都是读者可以马上拿来就用的C代码,同时读者也可以在相应的网站上获得这些代码。同样,对C编译器产生的汇编代码列表也进行了适当的分析。如果读者熟悉AT&T风格的X86汇编语言和ARM风格的ARMv4汇编语言就更好不过了。
对于大部分的算法和问题,可能都有多种实现方法。例如,乘法就有3种基本的算法,并且每种算法又有各种不同的实现技术。对各种配置的大小和效率在列出的平台上也进行了一些适当的比较。当然,也鼓励读者在书中没有列出的平台上对这些配置进行测试比较。
一些算法也有安全权衡问题。例如,AES在使用查找表时速度最快。在这种配置条件下,它也有可能泄漏侧信道(side channel)信息(在第4章进行讨论)。本书探讨了各种变化试图最小化这种泄漏情况的发生。对这些算法实现的分析紧紧联系了现代处理器的设计技术,尤其是具有数据缓存功能的。建议读者能够至少熟悉X86处理器(例如Intel Pentium 4和AMDAthlon64)是怎样在块层次上进行操作的。
有时在书中会参考一些现有的源代码,例如TomsFastMath和LibTomCrypt。这些都是用C编写的开源算法库,并且已经用于工业生产中的各种平台,小到传感器,大到企业服务器。而本书中的代码列表是不依赖于这些算法库的,建议读者参阅算法库,研究它们的设计,甚至也可以使用它们来做“重复造轮子”之类的事情。这并不是说你不需要自己试着实现这些算法;相反地,在环境允许的条件下,使用发布的源代码可以缩短产品开发和测试周期。当这些算法库不适合项目的限制时,建议读者使用自己的实现。这些项目都可以在www.libtomcrypt.com网站上获得。
在X86处理器上的时间数据是通过RDTSC指令生成的,它提供了精确的周期时间数据。建议读者熟悉这条指令及其用法。
【责任编辑:杨硕 TEL:(010)68476636-8001】

回书目   上一节   下一节
上一篇: 1.5 常识 下一篇: 1.7 总结
如何有效提升企业安全审计应用水平
如何有效防御SQL注入攻击
Web安全云时代
NAC安全访问控制
微软Forefront企业安全解决方案
 
 验证码: (点击刷新验证码)   匿名发表
  • Linux C编程实战

  • 作者:童永清
  • 本书系统地介绍了在Linux平台下用C语言进行程序开发的过程,集趣味性、实战性于一体的160多段代码实例,帮助读者快速掌握在Linu..
Copyright©2005-2008 51CTO.COM 版权所有