基于信息隐藏的软件加密方案
2020-10-19
来源:好走旅游网
2010年第8期 (总第132期) 大众科技 DAZHONG KE J No.8,2010 (Cumulatively No.1 32) 基于信息隐藏 的软件加密方案 吉胜军 (西安财经学院,陕西西安710100) 【摘要】提出了一种基于BMP图像信息隐藏、非对称密码体制、反跟踪等技术的软件加密方案。在该方法中,软件首 先提取计算机指纹信息的字符串,将该指纹信息使用RSA、MD5等算法进行必要的加密变换。再将变换后所得到的加密字符 串加密分散写入BMP图像文件中,且对BMP授权图像进行必要的数字签名、完整性检验等。与传统方法相比,该方法具有加 密强度高、成本低等特点。 【关键词】软件加密;信息隐藏;RSA;反跟踪 【中图分类号】TP311.56 【文献标识码】A 【文章编号】1008—1151(2010)08—0038—01 (一)引言 软件验证序列号的过程,其实就是验证两个或多个参数 竺茎二! 兰三二! 授权信息.应用复杂算法进行变换 .卜_——————————__叫授权BI VlP图像文件 = 二二竺 的数学映射关系。现有的序列号加密算法,大多是软件开发 _●—————————————————————————————1 ———————-J 逆变换L——————一 者自行设计的,大部分相当的简单,而且有些算法,软件开 发者虽然下了很大功夫,却达不到所期望的效果。成熟的算 图1授权文件处理过程 法比如RSA等。即使这些算法的强度很高,但是使用方法也 要得当,否则效果就和普通的四则运算效果没有什么两样, 很容易被解密者算出注册码或写出注册机来。 (一)基于信息隐藏的软件加密方案 1.授权BMP图像文件 BMP图像文件用于软件授权,通常包含用户名,机器身份 码等内容。该文件通常由软件开发者签发,由软件本身进行 图2授权BMP图像文件 验证。在签发授权BMP图像文件时,软件开发者对原始的授 2.软件主要加密算法设计实现 权信息进行复杂的变换,以防止信息的泄漏;而在软件验证 RSA算法既可用于数据的加密解密,也可用于数字签名。 该文件时,首先进行逆变化,以获取原始授权信息,然后再 RSA算法产生的数字签名由于其长度固定,适合作为软件的注 作验证并读取相应的授权数据。如图1所示。 册码。由于STR=NAME(用户信息)+ID(机器身份码)长度不定, 这种授权BMP图像文件签发与验证方案的最大问题是破 通过MD5报文摘要算法,产生固定长度的报文摘要,再作为 解者可以在软件验证时跟踪逆变换过程,以获取变换算法的 签名算法的消息输入。 信息。而如果破解者了解了原始授权信息是如何进行变换的, 计算注册码的过程实际上就是产生数字签名的过程: 那么就能很容易自己进行授权签发。因此需将将变换算法做 (1)生成密钥对:公钥为e,模数为n,私钥为d。 得尽量复杂化并且隐蔽化。 (2)将8TR作为消息输人M,用MD5算法生成报文摘要 结合非对称加密体制,将数字签名技术应用于授权BMP g=MD5(M)。g的长度为160位。 图像文件的签发和验证。对于每一个发布软件,系统生成一 (3)用私钥d对g进行加密,得到签名:s=g mod n。 对RSA公钥/私钥。当有用户购买了该软件,软件开发者需要 (4)将S秘密写入BMP图像。 生成授权BMP图像时,使用该软件对应的私钥对授权数据进 验证注册码的过程就是对数字签名进行校验的过程: 行签名,如图2所示。在软件验证授权时,只需要使用公钥 (1)从BMP图像中读取S。公钥e和模数n以常数的形 即可。因此,软件验证授权BMP图像文件时使用的公钥不会 式存在于校验模块中。 向软件破解者提供任何关于私钥的有价值信息。 (2)计算:g’=s。mod n (3)计算:g=MD5(STR) (下转第26页) 【收稿日期】2010—05—11 【作者简介】吉胜军,陕西韩城人,西安财经学院软件工程系教师,研究方向为人工智能、网络安全。 一38 图像导入: 由此可看出,在通道分解的方式下,Sobel算子顺利对彩 plmgl:cvLoadImage(“文件名”,1): 色图像边缘进行了提取,并取得了很好的效果。 图像通道分解: (五)方法推广 for(i=0:i<3:i++) 使用通道分解的方法,可以使多通道图片数据被分成多 planes[i] = cvCreateImage(cvSize(pImgl一>width 个单通道图片数据。此方法不仅可以与Sobel算子结合使用, pImgl一>height)1 IPLDEPTH8U,1)://生成输入矩阵 对Laplace等类似的算子在OpenCV中的实现上也有着很大的 cvSpl it(plmgl,planes[0],planes[1],planes[2],0)://分解 意义。而且可以通过此方法可得到彩色图片的红、绿、蓝单 for(i=0:i<3:i++) 通道边缘检测图像,对于火灾等单色光很强的场景中的物体 colours[i] = cvCreateImage(cvSize(plmgl一>width 检测更有重大意义。比如要单独得到黑夜中火焰的边缘轮廓, pImgl一>height),IPLDEPTH8U,1)://生成中间矩阵 而滤去其他物体轮廓线的影响,可以只调用红色通道的数据 for(i=0:i<4:i++) 进行处理,得到结果如下: pImg[i]=cvCreateImage(cvSize(pImgl一>width,pImgl一>hei ght),IPL DEPTH_SU,3)://生成输出矩阵 对每个通道都进行Sobe l滤波处理: for(i=0:i<3:i++) {cvSobel(planes[i],colours[i],0,1,3): cvConvertScaleAbs(colours[i],colours[i],1,0):) 一 一 将三种颜色通道数据合并到显示的图像中: cvMerge(colours[0],0,0,0,pImg[0]): 图4原图 图5处理后的图片 cvMerge(0,colours[1],0,0,pImg[1]): cvMerge(0,0,colours[2],0,pImg[2]): 这更有利于使用者进行火势判断等相关操作以实现对实 cvMerge(colours[0],colours[1],colours[2],0,pImg[3]) 际情况的更准确把握。 (六)结束语 显示彩色通道中的处理后结果: 作为西南交通大学2009年国家创新性实验计划项目研究 cvNamedWindow( 红色通道 ,1): 成果(项目编号091061309),此文创造性的使用Sobel算法 cvShowImage( 红色通道 ,pImg[2]): 对彩色图像各色彩通道进行单独处理并进一步分析了其应用 cvNamedWindow( 彩色通道 ,1): 前景。这更便于读者基于此提取图像更细节处的特征,此文 cvShowlmage( 彩色通道 ,piing[3]): (四)图像效果显示 对火灾现场等多种特殊光色环境下的图像研究分析也有着重 要意义 ■一■ 【参考文献】 【1]李弼程,彭天强,彭波,等.智能图像处理技术【M】.北京:电子 工业出版社.2004:149-173. [21刘瑞祯,于仕琪.OpenCV教程【M】.北京:北京航空航天大学 出版社.2007. 1it I处理前图片 图2处理后红色通道图片 图3处理后彩色通道图片 (上接第38页) (三)结束语 (4)比较g和g’。如果相等则证实S是STR的正确数字 各公司的研发部门视自己的加密算法为商业机密,对外 签名,即可确认用户输入的注册码是由软件开发者签发的。 绝对保密。并且价格往往也很昂贵,不适用于中小型软件的 这里使用的是MD5报文摘要算法,也可以根据需要选择 版权保护。因此文中采用信息隐藏技术、非对称密码机制、 SHA一1等其它报文摘要算法。 反跟踪技术实现软件的加密保护系统,具有广泛的应用价值。 3.反跟踪技术实现 花指令通常是欺骗静态分析的一种手段。让程序动态分 【参考文献】 析的时候显示出和真正执行时不同的形态。花指令是对抗静 【1】廖进华.BMP图像的防伪数字水印U】.计算机工程与设 态分析的有效手段之一。 计,2005,26(4):1053~1055. inl ine void foolcode 0 【21于琛.图像信息隐藏技术在信息安全中的应用研究【q.中 { asm 国海洋大学,2006. { jz XXX 【3]曲丽丽.基于数字水印的信息隐藏技术研究与应用【c】.南 jnz XXX 京理工大学,2006. emit OxE8 【4】沈静博.基于数字水印的软件保护技术研究【c】.西安:西北 XXX: 工业大学,2006. [5】黄俊,等.基于RSA算法的注册码软件加密保护Ⅱ].计算机 应用,2005,25(9):2080—2082. 一26.