首页
社区
课程
招聘
[原创]LibTomCrypt和我的学习笔记
2013-3-20 10:36 11116

[原创]LibTomCrypt和我的学习笔记

2013-3-20 10:36
11116
LibTomCrypt是加拿大的汤姆St. 丹尼斯用标准C语言写成的密码库,是免费自由的软件。
开源密码库众多,其中非常著名的还有OpenSSL、crypto++等。以下简要说明来至网络:

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


我的学习体会是LibTomCrypt非常适合信息安全和密码学方面的同学学习,适合编程基础不是非常强的同学学习。因为它的结构清晰明了,代码简洁,短小精干,容易理解。再加上还有辅助的开发文档,所以我向你推荐这个算法库。

我的LibTomCrypt学习笔记目前详细记录了分组密码的工作模式这一部分,别的部分还没有来得及更新。学习笔记侧重于介绍相关算法详情、算法的实现情况以及在LibTomCrypt中对应函数的说明。

附件说明

  • LibTomCrypt_v1.17.7z 是LibTomCrypt的源代码。里面也有我的测试工程,见LieTestMode文件夹。我直接对学习了的代码进行了注释,便于学习和理解。里面涉及的工程都是VC6或者vs2008。
  • LibTomMath.7z 是LibTomCrypt中公钥算法的大整数运算实现库,必不可少的哦。
  • LibTomCrypt学习笔记.7z 是我的学习笔记。最初的打算是把整个LibTomCrypt都做一个详细的笔记记录的,但在实际操作时发现很困难。这些笔记都是利用工作之余完成的,因此时间比较少,而内容又很多,再加上学习一个东西时,理解很容易,但是要把这个知识讲清楚还是很费些精力的。所以,目前将完成了的分组密码工作模式这一部分提交上来,与大家分享,欢迎交流学习。
  • LibTomCrypt Developer Manual.7z 是汤姆St. 丹尼斯的开发文档,E文的。侧重于开发描述。


欢迎相互学习交流哦。
芈亚罗吧
QQ:1055716360
Email:1055716360@qq.com

[培训]科锐软件逆向50期预科班报名即将截止,速来!!! 50期正式班报名火爆招生中!!!

上传的附件:
收藏
免费 0
打赏
分享
最新回复 (2)
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
熊仔lie 2013-3-20 10:47
2
0
初步打算的目录(含未完成部分)
1 前言        - 3 -
2 密码库LIBTOMCRYPT简介        - 3 -
3 密码算法        - 3 -
3.1 CIPHER DESCRIPTOR        - 4 -
3.2 AES        - 5 -
4 密码算法的工作模式        - 6 -
4.1 工作模式概况        - 6 -
4.2 ECB        - 8 -
4.2.1 ECB加解密        - 8 -
4.2.2 LibTomCrypt与ECB        - 9 -
4.3 CBC        - 10 -
4.3.1 CBC加解密        - 10 -
4.3.2 LibTomCrypt与CBC        - 11 -
4.4 CFB        - 12 -
4.4.1 CFB加解密        - 13 -
4.4.2 LibTomCrypt与CFB        - 13 -
4.5 OFB        - 15 -
4.5.1 OFB加解密        - 15 -
4.5.2 LibTomCrypt与OFB        - 16 -
4.6 CTR        - 18 -
4.6.1 CTR加解密        - 18 -
4.6.2 LibTomCrypt与CTR        - 18 -
4.7 OMAC        - 20 -
4.7.1 子密钥生成        - 21 -
4.7.2 MAC生成        - 22 -
4.7.3 LibTomCrypt与OMAC        - 23 -
4.8 CCM        - 25 -
4.8.1 加密与MAC生成流程        - 25 -
4.8.2 解密与验证流程        - 27 -
4.8.3 formatting_function        - 28 -
4.8.4 counter_generation_function        - 29 -
4.8.5 LibTomCrypt与CCM        - 29 -
4.9 GCM        - 30 -
4.9.1 GCTR        - 30 -
4.9.2 GHASH        - 31 -
4.9.3 GCM认证加密方案        - 32 -
4.9.4 GCM验证解密方案        - 33 -
4.9.5 LibTomCrypt与GCM        - 34 -
4.10 XTS        - 38 -
4.10.1 存储加密        - 38 -
4.10.2 有限域GF(2^128)        - 39 -
4.10.3 128-bit Block加密        - 39 -
4.10.4 DataUnit加密        - 40 -
4.10.5 KeyScope的加密        - 41 -
4.10.6 解密        - 41 -
4.10.7 TomLibCrypt与XTS        - 41 -
4.11 LRW        - 43 -
4.11.1 加密        - 43 -
4.11.2 实现上的调整与优化        - 44 -
4.11.3 TomLibCrypt与LRW        - 44 -
4.12 F8        - 46 -
4.12.1 F8算法        - 47 -
4.12.2 LibTomCrypt与F8        - 48 -
4.13 F9        - 50 -
4.13.1 F9算法        - 51 -
4.13.2 LibTomCrypt与F9        - 52 -
4.14 EAX        - 54 -
4.14.1 EAX算法        - 55 -
4.14.2 LibTomCrypt与EAX        - 56 -
4.15 OCB        - 60 -
4.16 密钥封装(KEY WRAP)        - 61 -
4.16.1 密钥封装有三种        - 61 -
4.16.2 W        - 61 -
4.16.3 W-1        - 63 -
4.16.4 KW        - 64 -
4.16.5 KWP        - 65 -
4.16.6 TKW        - 65 -
4.16.7 测试数据        - 65 -
5 散列函数        - 66 -
6 消息认证码函数        - 67 -
7 随机数函数        - 67 -
8 大整数        - 68 -
9 ASN.1 编码        - 68 -
10 公钥算法        - 68 -
11 后记        - 68 -
雪    币: 303
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
狼烟断 2013-9-25 08:44
3
0
最近在看磁盘加密相关的内容,正好用到了XTS模式,感谢分享。FreeOTFE也是用的这个库。
游客
登录 | 注册 方可回帖
返回