CodeJob 板


LINE

※ 引述《jlovet (Want 2 see u no more)》之銘言: : ※ 引述《datoguo (秋)》之銘言: : : 你有沒有考慮用公鑰密碼系統,如RSA, : : 把序號被破解的困難度建立在密碼學已知且公認安全的公鑰密碼系統上, : : 發序號時,以私鑰將明文加密後的密文為序號, : : 再於軟體中使用公鑰檢驗,如此,破解者逆向追蹤程式碼,縱然知道原始碼, : : 不知道私鑰,也無法設計出序號產生器。 : 沒錯,這是我本來的想法。 : 可是,許多密碼學的人,例如CryptoPP的作者,不認同private key加密這個動作 其實這要看應用為何,不能說private key加密就不好, 如RSA簽章,它其實也是用private key加密,再用public key解密, 一般公鑰密碼系統是以public key加密,再以private key解密,RSA加密也是如此, 但RSA簽章則相反,它採用用private key簽章(用解密函數簽章), 再用public key檢驗(用加密函數檢驗), 而且這還是憑證的公開標準作法 (不過前提是key的長度要夠長)。 : 因此CryptoPP裡面的非對稱金鑰都只能用公鑰加密 如果你要用RSA的話,可以考慮用OpenSSL, 若是要用ECC,我個人推薦MIRACL是不錯的選擇。 : 如果直接用他裡面的實做,那就得把私鑰放在軟體裡面, : 有人就會質疑從私鑰可以得到公鑰然後生出keygen 以RSA私鑰加密(簽章,即產生序號): s = m^d (mod n), 上式d為私鑰,s為簽章, 要從s逆推出d有其困難度,特別是當你數字夠大時就更難了。 比較要擔心的是n長度夠不夠長,會不會被人家在有限時間內因數分解, 因為你無論加解密都一定會用到n,而n=p.q (p, q為2個夠大質數), 如果可以由n分解出p, q,就可以馬上計算出d。 : (ECIES那篇有很多人這麼問) 可以將私鑰放在產生序號的程式裡面,公鑰放在檢驗序號的發行軟體中, 使用者只會拿到發行軟體,即使拿到發行的軟體的code, 裡面頂多也只有public key,而要從public key逆推出private key有很大的困難度。 RSA的提出至今,接受過許多公開的挑戰, 但至今仍被證明是安全的公鑰密碼系統(在有限時間內被破解的機率可以被忽略), 如果以private key加密(簽章)是不可被信任的, 那現今的憑證就不該使用RSA簽章,呵呵呵。 如果使用CryptoPP有如你說的那樣的限制,不妨可以考慮使用其他的Library, 如果你用RSA,我推薦OpenSSL;用ECC,則推薦用MIRACL。 : : 不過,缺點是:如果你要用RSA,必須選大質數才夠安全(破解者難以大數分解), : : 但是一旦如此,你的序號也會非常長。 : : 可是如果選用不夠大的質數,序號可以比較短,但是也相對比較容易被大數分解破解。 : : 除此之外,你可以針對序號檢驗的部份的code加Anti-Debug,及加殼, : : 增加破解及逆向追蹤的困難度。 : : 以上小小建議。 : http://www.codeproject.com/KB/security/ProductActivation.aspx : 這個人做了三種,RSA,AES,ECC : RSA用512 bits,就花了28個字元了.. 沒錯,用公鑰密碼系統做序號的缺點就是序號長,呵呵。 : http://www.codeproject.com/KB/security/ECIESProductKey.aspx : ECC可以做出比較小的簽章,或是加密結果.. ECC的優點是速度快,但在同樣安全性的情況下, 雖然ECC的金鑰長度可以比RSA短,但它生出來的密文是明文的兩倍或更多 (如果你採用ECC大師Koblitz提出的加解密方法,密文會是明文的兩倍再多一點點), 使用RSA的話,至少可以明文與密文差不多長。 可是ECC的簽章可以比較短,比RSA簽章短(在同樣安全性情況下), 因此ECC的話,採用ECDSA做序號確實是比較適合。 我之前也有實作序號檢驗及產生函數庫, 我也是選用ECC GF(p)。 : 我用的是ECC的變形, : 加殼...不覺得非常需要 : 我的client部份就算程式碼被知道,要逆向也沒辦法,就像你要從public key去得到 : private key一樣...很難 :p : 有興趣我們來Programming版討論吧 : 或是 http://bbs.pediy.com/showthread.php?t=82573 : 我怕在這邊會被罵 呵呵,我相信大家不想做的東西被copy,應該也會關心這問題。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.250.200.94 ※ 編輯: datoguo 來自: 60.250.200.94 (02/23 13:02)
1F:推 jlovet:其實有這個還是會被copy,只是很難keygen 02/23 16:18
2F:→ jlovet:我說他們不認同的意思是,大家都可以用public解密 02/23 16:19
3F:→ jlovet:他們覺得這樣就不叫做秘密了 02/23 16:19







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP