欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

超級CRC計算器HotCRC中的CRC出值碰撞有什么用途

阮建安2年前23瀏覽0評論

超級CRC計算器HotCRC中的CRC出值碰撞有什么用途?

HotCRC計算器中有多個碰撞,而目前官方的只有一個“CRC碰撞”,即不同的明文(待校驗數據流),相同的結果(校驗和)。

CRC出值碰撞是根據CRC逆運算,在明文不變,結果不變,指定出值后,逆運算出“初值”。

由于數字上將CRC校驗劃歸為“單向散列函數”,故它在理論上是沒有逆運算的。

但是菜農找到CRC的“陷門”后,即明文長度等于權值長度后,即可從“密文”中逆運算出“明文”。

由于明文和初值滿足交換律,故在明文長度是權值長度的整數倍時,即最后一組明文長度等于權值長度時,此時初值可以用逆運算得到。

即可以用“CRC出值碰撞”求初值。

CRC出值碰撞最大的用途就是“保護版權信息”不受破壞。

在一般的CRC保護應用上,都是有明文和校驗和兩部分構成保護機制,它的依據就是CRC算法是不公開的,或是很難逆向的。

利用CRC出值碰撞保護原理:

令校驗和恒為0,出值恒為0。已知被保護的明文,還有逆運算后的初值(由HotCRC求出)。

因為在保護程序里,運行的是CRC正運算,故對明文計算CRC后更為0。

然后用這個“0”到處異或,例如對LED或LCD字符串輸出時異或這個“0”,字符輸出不會發生變化即錯誤。

為何要這個“0”呢?

因為它非常了對校驗和驗證的分支!即對校驗和判斷的程序,故阻止或加大難度了逆向工程。

特別指出,當明文長度不為權值長度的整數倍時,即最后一組明文長度小于權值長度,故初值和明文不滿足交換律,故沒有逆運算。

此時的初值,攻防雙方都必須用正運算對初值進行窮舉!以求出初值。

強烈推薦利用出值碰撞保護版權信息時,明文長度不要選擇是權值長度的整數倍!

java crc 算法,超級CRC計算器HotCRC中的CRC出值碰撞有什么用途