LibTom系列是加拿大的汤姆St. 丹尼斯用标准C语言写成,该系列库包四个组成部分:LibTomMath、 LibTomCrypt、 LibTomNet,和 LibTomPoly。LibTomMath和LibTomCrypt是最成熟的组成部分。LibTom系列地址是:http://www.libtom.org/

LibTomCrypt是一个简单易用的加密工具,它提供给开发者相当多的大家熟悉的分组密码、单向hash函数、伪随机数生成器、公钥加密和其他的一些程序算法。它用标准的纯C语言写成。它有一个标准的API允许新密码,hashes函数,伪随机数生成器,添加和删除,它的特点是用很容易使用这些函数。LibTomCrypt是免费自由的软件。

开源密码库众多,其中非常著名的还有OpenSSL、crypto++等。以下简要说明:

  1. OpenSSL :C语言实现,整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。支持跨平台。代码量比较庞大,经过很多次调整,目前的结构不再清晰明了,要代码剥离的话非常痛苦,使用起来不是很方便。
  2. Crypto++:C++语言实现,代码庞大且复杂,使用起来不方便。支持跨平台。
  3. LibTomCrypt:短小精干,结构清晰明了,速度中等。适合初学密码学的学生和期望对密码学有进一步了解的人士。名气和使用广泛性不如OpenSSL和Crypto++。

LibTom的作者汤姆St. 丹尼斯还是位80后,在LibTom系列的主页中有他的自我介绍。下文是丹尼斯的自我介绍,来至于http://www.libtom.org/pages/about.html.

I'm a Canadian, from Ottawa, the nations capital.  I was born in 1982, raised, educated, and live here in town.  I hold an associates degree (equiv) from Algonquin College in computer science and engineering.  I grad'ed from college in 2004.  I'm the published author of two texts on cryptography, as well as the lead author of a half-dozen open source projects, three of which are fairly prominent in the community (my users include several large corporations, OSS projects such as OLPC and Tcl, universities such as Harvard and EPFL, etc.).

I study the piano.  I used to play when I was younger, took a near decade break and now am back into the study.  I only play conservatory pieces :-) and hope to someday regain my talent from my youth and perform in public once again.

I'm a dedicated fan of the Toorcon conference scene.  I've given talks there for the last three years as well as sponsor stipends and other activities (such as parties).  As a policy I refuse to attend IACR conferences due to the excessive costs which exclude many students from attending.  I prefer the small conference scene, but can see myself liking defcon one day.

I originally wanted to go the formal academia route and become a professor, realizing that was a lofty goal I devoted my energies to the projects (and a healthy respect for having a good time).  Finally if you wanted to see what I look like, the following is a photo from Toorcon in 2006.  Keep in mind this is Sunday afternoon, after a solid weekend (plus Friday) of partying :-)

汤姆St. 丹尼斯

密码库LibTomCrypt学习记录——(0)LibTomCrypt简介相关推荐

  1. python环境下paillier同态密码库踩坑记录

    python环境下paillier同态密码库环境搭建 前言 1. Paiilier库和Python版本的选择(非常重要) 2. 安装gmpy2 3. 安装PHE 4.安装NumPy 5. 测试 前言 ...

  2. 密码库LibTomCrypt学习记录——(2.25)分组密码算法的工作模式——EAX加密认证模式

    EAX EAX是一种加密认证模式,它可以对消息明文进行加密,同时对消息明文和关联信息(Associated Data)进行认证,当然此关联信息也可以为空.EAX由Mihir Bellare等人在200 ...

  3. 密码库LibTomCrypt学习记录——(2.15)分组密码算法的工作模式——GCM加密认证模式

    GCM GCM是一种有大吞吐能力的加密认证模式.其中主要适用了CRT模式和类似CBC模式的GHASH模式.CRT模式基本上没有大多变化,GHASH则是利用有限域上的乘法进行HASH,此运算可以通常预先 ...

  4. 密码库LibTomCrypt学习记录——(1.4)分组密码算法——AES-NI指令与AES的速度

    英特尔在比较新的CPU上提供了AES-NI指令,可以直接调用这些指令来进行AES加解密.关于此指令的速度提升情况,各方反应不一,最高有说提高17倍的,有说提高8-9倍左右的,还有说提高一半左右的.这可 ...

  5. 密码库LibTomCrypt学习记录——(2.3)分组密码算法的工作模式——ECB代码示例

    以下代码实现了AES-ECB的正确性测试(标准测试数据),以及性能测试 说明: 1. 代码里面使用了一个Str2Num函数,它将测试向量中的字符串转为十六进制字节数据,可自行实现. 2. 测试向量出处 ...

  6. 密码库LibTomCrypt学习记录——(1.5)分组密码算法——示例代码AES-ECB

    以下代码实现了AES-ECB的正确性测试(标准测试数据),以及性能测试 说明: 1. 代码里面使用了一个Str2Num函数,它将测试向量中的字符串转为十六进制字节数据,可自行实现. 2. 测试向量出处 ...

  7. 密码库LibTomCrypt学习记录——(2.18)分组密码算法的工作模式——XTS代码

    Test_XTS_AES.h文件代码如下 #ifndef _TEST_XTS_AES_H #define _TEST_XTS_AES_H typedef unsigned __int64 ulong6 ...

  8. 密码库LibTomCrypt学习记录——(2.11)分组密码算法的工作模式——CTR代码示例

    以下代码实现了CBC的正确性测试(标准测试数据) 说明: 1. 代码里面使用了一个Str2Num函数,它将测试向量中的字符串转为十六进制字节数据,可自行实现. 2. 测试向量出处为NIST SP 80 ...

  9. Linux 学习记录之——Linux简介及Vmware 虚拟机下分区和centos6系统安装

    课程大纲: 一.UNIX 与Linux发展史: 1.比拟说,Unix是父亲,Linux是儿子. 2.Unix是六十年代中期,Linux80年代, Windows 90年代. 3.miutix 大而复杂 ...

  10. 驾考题库项目学习记录

    static String splash = '/'; static String home = '/home'; static String choiceQuestionType = '/choic ...

最新文章

  1. Centos6.3下利用open***部署远程×××服务
  2. 浅谈民用无人机的行业化应用场景
  3. iOS开发之--打印一堆奇怪东西的解决方案
  4. 自己定义九宫格手势解锁
  5. android中访问手机存储空间,android – 访问手机内部存储以推入SQLite数据库文件...
  6. 01-python中字符串的常见操作
  7. jsp页面struts2标签展示clob类型的数据
  8. dell装双系统linux系统,记录DELL灵越7590/7591安装Ubuntu+Win10双系统
  9. 使用Bigemap下载地图生成GST(Mapinfo格式)地图包
  10. 网站抓取精灵V3.0正式版
  11. 正向代理和反向代理详解(纯小白必看 最好懂的白话文教程)
  12. html日期格式化标签,js日期格式化yyyymmdd
  13. EDM大师独家收藏的30个绝佳节日邮件模板
  14. 库存管理 库存管理软件榜单 库存管理软件排名 库存管理提高效率的办法
  15. 修改注册表 打造个性化右键菜单
  16. C#设置开机启动时报错,提示“对注册表项“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run访问被拒绝”
  17. MOEAD原理及Python实现、MOEAD实现、基于分解的多目标进化、 切比雪夫方法-(python完整代码)
  18. 【VBS发邮件】乱码解决方法
  19. Python安装libsvm
  20. ABAP RFC远程调用

热门文章

  1. python queue的用法_PYTHON多进程用法之四(Queue)
  2. sqlserve 热备用状态更新_什么是核心交换机的链路聚合、冗余、堆叠、热备份
  3. python爬虫线上编辑_Python 爬虫入门《中》
  4. flutter 进度条_OkHttp 在 Flutter中的运用场景,Flutter语言连接网络的方法介绍
  5. 判断单链表中的元素是否递增_判断某单链表l总的元素是否是递增的算法
  6. 怎么看其他人系统连接的服务器,别人如何连接云服务器
  7. 异常处理与自定义异常
  8. html中多个网页的跳转页面,Html --- Footer 多页面应用跳转
  9. ue4模型为啥这么亮_UE4中的HLOD和Proxy
  10. 【问题9】Redis热点Key发现及常见解决方案