ch1 密码学C/C++库介绍、C中大数的表示、接口语义

  • Post author:
  • Post category:其他


Ch1 密码学C/C++库介绍

话休絮烦,既然开了新坑《密码学C/C++语言实现》,就直接开始吧。这本书的作者是迈克尔·威尔森巴赫(Michael Welschenbach),是书籍的第二版。

本书中描述的软件包名称为FLINT/C,意思是“数论和密码学中的大整数函数”(Functions for large integers in number theory and cryptography)。

简单描述一下各个模块:

flint.h,使用flint.c的头文件;

flint.c,用C描述的算数和数论函数;

kmul.{h, c},Karatsuba乘法和开方函数;

ripemd/{h, c},散列函数RIPEMD-60的实现;

sha{1, 256}.{h, c},散列函数SHA-1、SHA-256的实现;

entropy.c,生成作为伪随机序列初始值的熵;

random.{h, c},生成伪随机数;

aes.{h, c},高级加密算法(AES)的实现。


具体的下载地址在Github上,搜索flint即可。

Ch2 C中大数的表示

背景:在FLINT/C库中,所有程序的基本功能是处理远超过标准数据类型容量的几百位数字的自然数,因此我们需要一个用于大数表达和操作的计算机存储器单元的逻辑顺序。

可以采用动态内存管理的方式分配内存,但是会牺牲计算时间,因此,本书中采用静态长度。

为了表示大自然数,出于效率考虑,一个无符号的数据类型是最



版权声明:本文为actuaryzx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。