資源描述:
《橢圓曲線加密分析:flexlm ecc問(wèn)答》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、標(biāo)題:【原創(chuàng)】橢圓曲線加密分析:FLEXLMECC問(wèn)答[7月16日更新到第7部分]作者:readyu時(shí)間:2012-06-25,19:00:18鏈接:http://bbs.pediy.com/showthread.php?t=152615說(shuō)明:我曾經(jīng)寫過(guò)ECCTool用于學(xué)習(xí)和研究橢圓曲線加密在軟件上的應(yīng)用。橢圓曲線密碼學(xué)工具?ECCTooL?v1.04原帖年代久遠(yuǎn)不再更新。v1.05版本我放在本帖3#。FLexLM?ECC是橢圓曲線簽名的一個(gè)典型應(yīng)用,不可不察。我整理了一下FLEXLM?ECC方面的研究心
2、得,?準(zhǔn)備把它完全寫出來(lái)。后面會(huì)有算法描述的例子代碼。FLEXLM?ECC問(wèn)答?(1)readyu?2012.61.?FLEXLM是個(gè)蝦米東西?FLEXlm是應(yīng)用廣泛的License管理工具。宣稱數(shù)千家EDA工具采用它管理授權(quán)。FLEXlm對(duì)廠商來(lái)說(shuō),它的優(yōu)點(diǎn)是證書管理功能強(qiáng)大,?支持平臺(tái)眾多。對(duì)最終用戶來(lái)說(shuō),它的缺點(diǎn)是不夠友好,?比如Windows下,經(jīng)常由于某些原因,flexlm服務(wù)啟動(dòng)錯(cuò)誤。對(duì)于破解者來(lái)說(shuō),它有著為數(shù)眾多的教本。維基百科上的條目為:http://en.wikipedia.org/wik
3、i/FLEXlmFLEXLM本來(lái)屬于GLOBEtrotter。Macrovision曾經(jīng)收購(gòu)GLOBEtrotter。2006年的時(shí)候,F(xiàn)LEXLM原來(lái)的開(kāi)發(fā)組跑路,另起灶頭,產(chǎn)品叫RLM。http://www.reprisesoftware.com/index.php2008年Macrovision把FLEXLM賣了。現(xiàn)在叫FlexNet?Publisher。http://www.flexerasoftware.com/products/flexnet-publisher.htm2.?FLexLM?的EC
4、C(橢圓曲線加密)怎么來(lái)的?早期的flexlm采用的常規(guī)加密,不安全,能被做出lic。這樣的教程是很多的。flexlm的安全性完全得不到保障,所以,自?v8(大約2001-2002)版本引入了公鑰加密算法:橢圓曲線加密。從此,它一直是flexlm的金鐘罩。包括v9(2003-)?,?v10(2004-)?,?v11(2007-),?到最新的版本?v11.10?(2012)?。FlexLm的ECC沒(méi)有它自己的東西,完全采購(gòu)自橢圓曲線加密系統(tǒng)的專利擁有者:Certicom公司。換而言之,?flexlm?ecc是
5、購(gòu)買自certicom的一套代碼,相當(dāng)于在腐朽的木門上套一層黃金甲。OK,?從此它是不破金身了。3.?Certicom公司是何方神圣?RSA和ECC是兩大主流的公鑰密碼算法體系。相比RSA,ECC晚出生10多年,推廣不如前者。Certicom公司是ECC的主要商業(yè)支持者,它擁有多項(xiàng)專利。其地位可與RSA公司匹敵(RSA于2006年被EMC公司收購(gòu))。有一則消息說(shuō),2003年美國(guó)國(guó)家安全局(NSA)以2500萬(wàn)美元支付了Certicom的26項(xiàng)技術(shù)許可。另外有一則消息,?Certicom?2007年起訴索尼公
6、司,要求其支付PS3,DVD播放器等涉及加密技術(shù)侵權(quán)的專利費(fèi)用。Certicom的創(chuàng)辦人Scott?Vanstone,是加拿大滑鐵盧大學(xué)的數(shù)學(xué)系教授和皇家科學(xué)院院士。以前是研究橢圓曲線加密的,后來(lái)創(chuàng)辦Certicom公司,努力把ECC從數(shù)學(xué)界推廣到工業(yè)界。Scott寫過(guò)一本《橢圓曲線密碼學(xué)導(dǎo)論》,?頗有名氣。4.?FLEXLM?如何用的ECC?說(shuō)來(lái)話長(zhǎng)。一句話說(shuō):FLexLM?在license驗(yàn)證上,主要用的ECDSA(橢圓曲線數(shù)字簽名算法)。具體的講:?flexlm針對(duì)ECDSA有一些自己定義的東西以抵抗
7、破解。?后面我會(huì)說(shuō)到,這些自定義的東西也不是那么牢固。5.?FLEXLM?ECC的通用破解方法?FLEXLM?ECC的通用破解方法就是:完全按照它的ECDSA算法簽名,?只替換公鑰和checksum,?寫一個(gè)keygen生成license。從邏輯上講,生成license的方法和原廠的完全一致。具體該怎么做呢:首先,?實(shí)現(xiàn)標(biāo)準(zhǔn)的ECDSA簽名算法。橢圓曲線的具體算法,可以用現(xiàn)成的miracl,cryptopp等加密庫(kù)代碼。?只需要搞清楚ECDSA的使用方法就可以。從早期版本?v9.2?(2004)?,?到最新
8、版本v11.10?(2012)?。它的ecc公鑰都是有checksum的。替換公鑰,首先得搞清楚checksum。它只有一個(gè)函數(shù),不算復(fù)雜,后面我會(huì)給出代碼。計(jì)算這個(gè)checksum,?對(duì)所有版本都是適合的。其次,?公鑰在文件里是加密打散的,有大量垃圾代碼。這些干擾使得flexlm可讀性很差。獲取公鑰需要調(diào)試。在我寫SlickEdit的patch?keygen,我曾經(jīng)采用調(diào)試的方法,非常不方便。那么,有沒(méi)有更方便