C和C++密码学实战指南

需积分: 3 2 下载量 48 浏览量 更新于2024-11-11 收藏 2.12MB PDF 举报
"Apress.Cryptography.in.C.and.Cplusplus.2nd.Ed.2005" 是一本关于密码学在C和C++编程语言中的应用的书籍。书中详细介绍了与密码学相关的数学基础、算法实现以及相关测试。 在密码学中,数学基础包括算术和数论,这些内容在目录flint/src下有详细阐述。书中还涉及到80x86汇编语言编写的算术模块,可以在flint/src/asm目录中找到。为了验证算法的正确性,书中包含了一系列的测试,分布在flint/test和flint/test/testvals目录下。此外,80x86汇编编写的库(见第19章)位于flint/lib和flint/lib/dll目录。RSA加密算法的实现(见第17章)则位于flint/rsa目录。 书中章节3-1介绍了FLINT/C错误代码,这是在编程中处理异常和问题的关键部分。第5章中,通过5-1和5-2表展示了加法和乘法在模5下的组合表,用于理解模运算的性质。第6章讨论了指数运算的效率,如6-1所示,6-2和6-3列出了不同基数和指数大小下的乘法次数。第6-5节列出了FLINT/C中用于指数运算的不同函数。 第7章涉及布尔函数的表示,例如7-1到7-4给出了CLINT函数的值。第8章的vcheck_l()函数的诊断值在8-1中给出,这有助于检测和调试程序中的错误。第10章讨论素数,包括最大的已知素数(截至2004年12月)列表(10-1)以及不同限制下素数的数量(10-2)。此外,10-3和10-4分别展示了米勒-拉宾素性测试的错误概率和AKS测试的计算时间。 第11章深入探讨了有限域上的运算,如F23的元素(11-1),以及Rijndael密码算法的细节,包括轮数(11-4)、消息块的表示(11-5)、轮密钥的构造(11-8)以及S-box(11-9)和反S-box(11-10)的值。 第12章讨论了统计测试,如耐久性间隔(12-1)和随机数生成器的测试结果(12-2)。第13章涉及群法和测试函数(13-1和13-2),第14章涵盖了LINT构造器和算术运算符。 此书为读者提供了全面的密码学知识,包括理论和实践,适用于C和C++开发者以及对密码学感兴趣的读者。