1 / 51
文档名称:

椭圆曲线加密分析:FLEXLM ECC问答.doc

格式:doc   页数:51页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

椭圆曲线加密分析:FLEXLM ECC问答.doc

上传人:xxj16588 2016/7/13 文件大小:0 KB

下载得到文件列表

椭圆曲线加密分析:FLEXLM ECC问答.doc

文档介绍

文档介绍:标题:【原创】椭圆曲线加密分析: FLEXLM ECC 问答[7月 16日更新到第 7部分] 作者: readyu 时间: 2012-06-25,19:00:18 链接: http://bbs./?t=152615 说明: 我曾经写过 ECCTool 用于学****和研究椭圆曲线加密在软件上的应用。椭圆曲线密码学工具 ECCTooL 原帖年代久远不再更新。 版本我放在本帖 3#。 FLexLM ECC 是椭圆曲线签名的一个典型应用,不可不察。我整理了一下 FLEXLM ECC 方面的研究心得, 准备把它完全写出来。后面会有算法描述的例子代码。 FLEXLM ECC 问答(1) readyu 1. FLEXLM 是个虾米东西? FLEXlm 是应用广泛的 License 管理工具。宣称数千家 EDA 工具采用它管理授权。 FLEXlm 对厂商来说,它的优点是证书管理功能强大, 支持平台众多。对最终用户来说,它的缺点是不够友好, 比如 Windows 下,经常由于某些原因, flexlm 服务启动错误。对于破解者来说,它有着为数众多的教本。维基百科上的条目为: http://en./wiki/FLEXlm FLEXLM 本来属于 GLOBEtrotter 。 Macrovision 曾经收购 GLOBEtrotter 。 2006 年的时候, FLEXLM 原来的开发组跑路,另起灶头,产品叫 RLM 。 2008 年 Macrovision 把 FLEXLM 卖了。现在叫 Publisher 。 ducts/- 2. FLexLM 的 ECC (椭圆曲线加密)怎么来的? 早期的 flexlm 采用的常规加密,不安全,能被做出 lic 。这样的教程是很多的。 flexlm 的安全性完全得不到保障,所以,自 v8( 大约 2001-2002) 版本引入了公钥加密算法:椭圆曲线加密。从此,它一直是 flexlm 的金钟罩。包括 v9(2003-) , v10(2004-) , v11(2007-), 到最新的版本 (2012) 。 FlexLm 的 ECC 没有它自己的东西,完全采购自椭圆曲线加密系统的专利拥有者: 公司。换而言之, flexlm ecc 是购买自 的一套代码,相当于在腐朽的木门上套一层黄金甲。 OK,从此它是不破金身了。 3. 公司是何方神圣? RSA 和 ECC 是两大主流的公钥密码算法体系。相比 RSA , ECC 晚出生 10多年,推广不如前者。 公司是 ECC 的主要商业支持者,它拥有多项专利。其地位可与 RSA 公司匹敌( RSA 于 2006 年被 EMC 公司收购)。有一则消息说, 2003 年美国国家安全局( NSA )以 2500 万美元支付了 的 26项技术许可。另外有一则消息, 2007 年起诉索尼公司,要求其支付 PS3 , DVD 播放器等涉及加密技术侵权的专利费用。 的创办人 Scott Vanstone ,是加拿大滑铁卢大学的数学系教授和皇家科学院院士。以前是研究椭圆曲线加密的,后来创办 公司,努力把 ECC 从数学界推广到工业界。 Scott 写过一本《椭圆曲线密码学导论》, 颇有名气。 4. FLEXLM 如何用的 ECC ? 说来话长。一句话说: FLexLM 在 license 验证上,主要用的 ECDSA (椭圆曲线数字签名算法)。具体的讲: flexlm 针对 ECDSA 有一些自己定义的东西以抵抗破解。后面我会说到,这些自定义的东西也不是那么牢固。 5. FLEXLM ECC 的通用破解方法? FLEXLM ECC 的通用破解方法就是: 完全按照它的 ECDSA 算法签名, 只替换公钥和 checksum ,写一个 keygen 生成 license 。从逻辑上讲,生成 license 的方法和原厂的完全一致。具体该怎么做呢: 首先,实现标准的 ECDSA 签名算法。椭圆曲线的具体算法,可以用现成的 miracl , cryptopp 等加密库代码。只需要搞清楚 ECDSA 的使用方法就可以。从早期版本 (2004) ,到最新版本 (2012) 。它的 ecc 公钥都是有 checksum 的。替换公钥,首先得搞清楚 checksum 。它只有一个函数,不算复杂,后面我会给出代码。计算这个 checksum ,对所有版本都是适合的。其次,公钥在文件里是加密打散的,有大量垃圾代码。这些干扰使得 flexlm 可读性很差。获取公钥需要调试。在我写 SlickEdit 的 patch keygen ,我曾经采用调试的方法,非常不方便。那么,