本书分为三个部分。第一部分描述密码学中的常用算法和数认算法,以及这些算法的C和C++程序实现;第二部分描述密码算法的C和C++实现,主要包括RSA系统和替代DES的Rijndael算法。第三部分给出了书中C函数和C++函数的一览表及一些有用的网址。本书注重算法的实现以及密码算法与C和C++程序的结合,这也是本书的主要特色之一。从实用的角度来看,本书提供了一个可用于现代密码的完整软件包。书中除重点介绍了两种重要的密码算法之外,还涉及程序的检查及错误处理、密码策略及密码的前景等。该书的第一版问世后,被译为英文在美国出版发行;本书则是依据作者对德文第二版的最新增订版译出的。\r\n 本书对计算数论专业、密码学专业的大学生、研究生有较大的参考价值。对密码学工作者,该书也有一定的参考价值。
第一部分 基于C++的算术和数论\r\n\r\n第1章 引论\r\n\r\n1.1 关于软件的使用\r\n1.2 使用软件的合法条件\r\n\r\n第2章 数的格式:大数在C中的表示\r\n\r\n第3章 接口语义\r\n\r\n第4章 基本运算\r\n\r\n4.1 加法和减法\r\n4.2 乘法\r\n4.2.1 学校方法\r\n4.2.2 更快的平方\r\n4.2.3 用Karatsuba方法会更快吗\r\n4.3 带余除法\r\n\r\n第5章 模算术:剩余类的计算\r\n\r\n第6章 百川归海:模乘方\r\n\r\n6.1 最初的方法\r\n6.2 M-ary乘方\r\n6.3 加法链和窗\r\n6.4 Montgomery约化和乘方\r\n6.5 乘方在密码学中的应用\r\n\r\n第7章 位函数和逻辑函数\r\n\r\n7.1 移位运算\r\n7.2 位关系的有与无\r\n7.3 直接存取单个二进制数\r\n7.4 比较运算\r\n\r\n第8章 输入、输出、赋值和转换\r\n\r\n第9章 动态寄存器\r\n\r\n第10章 基本数论函数\r\n\r\n10.1 最大公约数\r\n10.2 剩余类环中的乘法逆\r\n10.3 根与对数\r\n10.4 剩余类环中的平方根\r\n10.4.1 Jacobi符号\r\n10.4.2 模p 的平方根\r\n10.4.3 模n的平方要\r\n10.4.4 利用二次剩余的密码系统\r\n10.5 索性检验\r\n\r\n第11章 大随机数\r\n\r\n第12章 检验LINT的策略\r\n\r\n12.1静态分析 \r\n12.2运行时间检验\r\n\r\n第二部分 用于C++的算术和密码学\r\n\r\n第13章 用C++的类提高效率\r\n\r\n13.1 非公共事务:LINT中数的表示\r\n13.2 构造函数\r\n13.3 重载运算符\r\n\r\n第14章 LINT公共接口:成员函数和友员函数\r\n\r\n14.1 算术\r\n14.2 数论\r\n14.3 LINT对象的流I/O\r\n14.3.1 LINT对象的格式化输出\r\n14.3.2 操作器\r\n14.3.3 LINT对象的文件I/O\r\n\r\n第15章 对错误的处理\r\n\r\n15.1 冷静对待错误\r\n15.2 用户定义的错误处理\r\n15.3 异常情况:LINT异常\r\n\r\n第16章 一个应用实例:RSA方法\r\n\r\n16.1非对称密码系统 \r\n16.2 RSA算法\r\n16.3 数字RSA签名\r\n16.4 使用C++的RSA类\r\n\r\n第17章 自己动手测试LINT\r\n\r\n第18章 进一步扩展的方法\r\n\r\n第19章 DES的继任者Rijidael\r\n\r\n19.1 多项式算术\r\n19.2 Rijidael算法\r\n19.3 计算轮密钥\r\n19.4 S盒\r\n19.5 ShiftRow变换\r\n19.6 MixColumn变换\r\n19.7 AddRoundKey步骤\r\n19.8 加密的全过程\r\n19.9 解密\r\n19.10 性能\r\n19.11 模式\r\n\r\n第20章 后记\r\n\r\n第三部分 附录\r\n\r\n附录A C函数一览表\r\n附录B C++函数一览表\r\n附录C 宏\r\n附录D 计算时间\r\n附录E 符号\r\n附录F 算术和数论软件包\r\n参考文献