针对软件水印分存算法恢复缓慢、数据扩张的缺点,提出一种基于m—n变进制规则的动态图软件水印算法,利用水印信息、m—n变进制数、排列数与置换图之间的对应关系,实现水印的分存和编码。当水印嵌入时,根据变进制规则将水印信息分存为一组变进制数,构造一个完美哈希函数将变进制数映射为对应的排列数,把得到的排列数编码为置换图结构嵌入到程序的执行代码中,水印提取是水印嵌入的逆过程。实验结臬表明,该算法能减小程序的负载。降低水印嵌入和提取的时间复杂度,增强水印的隐蔽性和纠错能力。
l A dynamic graph software watermarking algorithm based on the m-n Variable Carrying Rule(VCR) is proposed towards the drawback of the slow recovery rate and the data expansion of software watermarking sharing algorithm. This algorithm takes advantage of the correspondence of watermarking, rn-n Variable Carrying Number(VCN), permutation number and Permutation Graph(PG) to implement the watermarking sharing and encoding. When the watermarking is embedded, it uses the VCR to share the watermarking as VCN, and then convertes them into a permutation number with a perfect Hash function, at last encodes them as the PG and embeds it in the program execution code. The watermarking extracting is the reverse process of the watermarking embedding. Experimental analysis shows that this algorithm decreases the program load and the watermarking recovery time complexity and improves the watermarking steganography and error correction capability.