发明内容
本发明目的是为了解决现有CAD签章***还原文档难度大;即使和加密联手保护文档也存在无法确认签发者的问题。提供了一种用于CAD文档的签章水印***。
本发明所述一种用于CAD文档的签章水印***,它包括签章模块、验章模块和还原模块,
签章模块用于将设定的章形分解后嵌入到原始CAD文档中,并嵌入签名信息水印和 篡改定位信息水印进行签章,然后将签章后的CAD图形发布;
验章模块用于对接收到的签章后的CAD文档进行完整性的验证:提取该CAD文档的签名信息,用于验证该CAD文档的签名是否是伪造的;还原该CAD文档的水印图形,用于验证该CAD文档是否被篡改,当图形被篡改的情况能给出篡改定位信息;
还原模块用于还原验章通过的CAD文档。
其中,签章模块的工作流程为:
步骤一、判断该CAD文档是否已被盖章,
判断结果为是,退出该程序;判断结果为否,执行步骤二;
步骤二、对CAD文档进行盖章操作,获得含章形的CAD文档;
步骤三、在含章形的CAD文档上嵌入该CAD文档的签名信息水印;
步骤四、在含章形的CAD文档上嵌入该CAD文档的篡改信息水印,完成该CAD文档的签章,并将签章后的CAD图形发布。
验章模块的工作流程为:
步骤1、判断接收的CAD文档是否已被盖章,
判断结果为是,执行步骤2,判断结果为否,该CAD文档无法进行验章操作,退出程序;
步骤2、采用篡改定位水印算法提取出该CAD文档中的脆弱水印,
步骤3、根据所述脆弱水印信息判断该CAD文档是否被篡改,
判断结果为是,标识出篡改位置,验章失败;判断结果为否,执行步骤4;
步骤4、采用8点DCT可逆水印算法提取可逆水印,即为该CAD文档嵌入的签名信息,
步骤5、判断该CAD文档的签名信息是否正确,
判断结果为是,验章成功;判断结果为否,验章失败。
还原模块的工作流程为:
步骤A、判断CAD文档是否已经被还原,
判断结果为是,退出该程序;判断结果为否,执行步骤B;
步骤B、判断该CAD文档是否通过验章,
判断结果为是,执行步骤C;判断结果为否,验章未通过,退出该程序;
步骤C、还原该CAD文档的篡改信息水印;
步骤D、还原该CAD文档的签名信息水印,完成该CAD文档的还原。
本发明的优点:本发明***首先进行可逆水印的嵌入然后再进行脆弱水印的嵌入。由于基于整数变换的可逆水印技术具有能够精确还原原始图形的特性,且具有较大的容量,我们可以将签名信息嵌入到原始作品中,这样在提取签名信息的同时,图形也被还原成最初始的状态,完好地保证了图形来源的真实性。而基于网格划分的脆弱水印算法作为***最外层的保护方案,对篡改的敏感性以及图形拓扑结构的不变性玩好地保证了图形的完整性,矢量图电子作品在绘制完成以及传输的过程的安全性也就得到了良好的保护。
具体实施方式
具体实施方式一:下面结合图1至图8说明本实施方式,本实施方式所述一种用于CAD文档的签章水印***,它包括签章模块、验章模块和还原模块,
签章模块用于将设定的章形分解后嵌入到原始CAD文档中,并嵌入签名信息水印和篡改定位信息水印进行签章,然后将签章后的CAD图形发布;
验章模块用于对接收到的签章后的CAD文档进行完整性的验证:提取该CAD文档的签名信息,用于验证该CAD文档的签名是否是伪造的;还原该CAD文档的水印图形,用于验证该CAD文档是否被篡改,当图形被篡改的情况能给出篡改定位信息;
还原模块用于还原验章通过的CAD文档。
本实施方式对各安全方面进行了综合考虑,设计并实现了基于多重水印技术的矢量图签章水印,该***使用可逆水印技术嵌入发送者的数字签名信息并使用加密狗技术对图形文件进行加密,从根本上保护了矢量图的安全性。
签章模块,签章部分主要包括章形文件的嵌入,第一次脆弱可篡改定位水印的嵌入以及第二次可逆水印的嵌入。图2描述了签章的主要过程。在对整个绘制完成的图形进行章形文件的嵌入以后,***将对包含章形文件的整个图形进行第一次水印即将签名信息用可逆水印的方式的嵌入。在得到嵌入完成的图形之后,立即使用第二次水印算法即脆弱水印的方式嵌入图形的每个分块信息。这样即得到了嵌入完成的作品。
验章模块,验章模块主要包含了对接收到的图形进行完整性的验证、签名信息的提取及验证以及水印图形的还原。在图形被篡改的情况下能给出篡改定位信息,在签名信息验证不通过的情况下能够告知用户签名是伪造的。验章的流程参见图5。
还原模块,如图8所示,还原之前首先对对图形中是否存在水印信息进行判定,只有包含水印信息并且前两步验证通过的图纸才能还原到初始状态,而被篡改过或者是签名来源验证失败的图纸将不能被还原。
具体实施方式二:下面结合图1和图2说明本实施方式,本实施方式对实施方式一作进一步说明,签章模块的工作流程为:
步骤一、判断该CAD文档是否已被盖章,
判断结果为是,退出该程序;判断结果为否,执行步骤二;
步骤二、对CAD文档进行盖章操作,获得含章形的CAD文档;
步骤三、在含章形的CAD文档上嵌入该CAD文档的签名信息水印;
步骤四、在含章形的CAD文档上嵌入该CAD文档的篡改信息水印,完成该CAD文档的签章,并将签章后的CAD图形发布。
首先是在CAD文档上盖章。该部分的主要功能是将章形***到原始图形当中,并且将章块进行分解,为水印的嵌入做好准备。
步骤三中是签名信息水印的嵌入。参见图3,要保证图形来源的真实性,最好的方式就是使用发送者对图形的哈希使用其私钥进行加密后将该签名信息使用水印的方式嵌入到原始图形中。使用8点整数DCT算法,将图形中所有数据信息进行哈希之后,使用发送者的私钥对其进行签名,得到1024位的签名信息,将该信息作为水印信息,使用8点 整数DCT算法嵌入到原始图形当中,该算法良好的容量以及几乎不改变图形视觉特性的特点十分适合该步的目的。
步骤四中是篡改定位信息水印的嵌入。参见图4,在第一次的水印嵌入之后,我们使用可篡改定位的水印方式来进行对图形完整性的保护。该算法在嵌入之前需要进行一次对原始图形的初始化工作。该算法的主要思想是将水印信息嵌入到图形实体的直线当中,而直线端点的坐标大小则指示出了该位水印信息。
具体实施方式三:本实施方式对实施方式二作进一步说明,步骤二所述对CAD文档进行盖章操作的过程为:将设定好的章块进行分解,然后加载入CAD文档中。
具体实施方式四:下面结合图3说明本实施方式,本实施方式对实施方式二作进一步说明,步骤三中在含章形的CAD文档上嵌入该CAD文档的签名信息水印的工作流程为:
步骤三a、遍历含章形CAD文档,获取所有直线实体的坐标数据;
步骤三b、根据步骤三a获取的坐标数据计算出所述含章形CAD文档的哈希值,所述哈希值为128位;
步骤三c、根据加密狗中的私钥及步骤三b获取的哈希值获取1024位签名信息;
步骤三d、采用8点DCT可逆水印算法将步骤三c获取的1024位签名信息嵌入到含章形的CAD文档中,完成在含章形的CAD文档上嵌入该CAD文档的签名信息水印的工作。
具体实施方式五:下面结合图4说明本实施方式,本实施方式对实施方式二作进一步说明,步骤四中在含章形的CAD文档上嵌入该CAD文档的篡改信息水印的工作流程为:
步骤四a、将含章形的CAD文档进行图形初始化;
步骤四b、对步骤四a处理后的CAD文档按迭代划分规则进行自适应分块;
步骤四c、获取该CAD文档每一个分块的实体数据的哈希值;
步骤四d、根据对CAD文档的迭代划分规则确定哈希值的精度位;
步骤四e、根据精度位,采用脆弱水印算法将水印嵌入到每一个分块中,完成在含章形的CAD文档上嵌入该CAD文档的篡改信息水印的过程。
具体实施方式六:下面结合图5说明本实施方式,本实施方式对实施方式一作进一步说明,验章模块的工作流程为:
步骤1、判断接收的CAD文档是否已被盖章,
判断结果为是,执行步骤2,判断结果为否,该CAD文档无法进行验章操作,退出程序;
步骤2、采用篡改定位水印算法提取出该CAD文档中的脆弱水印,
步骤3、根据所述脆弱水印信息判断该CAD文档是否被篡改,
判断结果为是,标识出篡改位置,并输出验章失败信息;判断结果为否,执行步骤4;
步骤4、采用8点DCT可逆水印算法提取可逆水印,即为该CAD文档嵌入的签名信息,
步骤5、判断该CAD文档的签名信息是否正确,
判断结果为是,输出验章成功信息;判断结果为否,输出验章失败信息。
验章主要包括两大块:
1、篡改定位及其脆弱水印的验证。接收者拿到手中的图形是一张既包含了签章签名信息,又包含了篡改定位信息的图形。按照多重水印嵌入的顺序,我们必须首先对篡改定位信息进行提取并进行验证,在验证通过的情况下才能进行下一步的工作。篡改定位及其脆弱水印的验证流程图参见图6。
2、签名及其可逆水印的验证。在上一步篡改定位验证通过以后,我们可以拿到一张只包含签名水印的图形。此时,接收者要验证该图之中包含的签名信息是否是真实的,首先要使用可逆水印算法将水印信息提取出,该提取出的水印信息即为需要验证的签名信息。在提取出水印信息的同时,由于使用可逆水印算法对图形进行水印的嵌入,在图形没有被篡改的情况下,我们能够得到嵌入水印即签名信息之前的图形。由于验证者持有签名者的公钥,所以能够使用该公钥对还原后图形哈希进行签名,从而进行该签名信息与提取出的签名信息进行对比,确定图形的来源是否真实。签名及其可逆水印的验证过程参见图7。
具体实施方式七:下面结合图6说明本实施方式,本实施方式对实施方式六作进一步说明,步骤3中判断该CAD文档是否被篡改的过程为:
步骤31、将步骤2提取出的脆弱水印划分的该CAD文档每块的水印信息;
步骤32、判断每块的水印信息是否相同,
判断结果为是,该CAD文档没有被篡改,结束该步骤的验证;判断结果为否,则该CAD文档被篡改过,并用红色框将篡改部分标识出。
具体实施方式八:下面结合图7说明本实施方式,本实施方式对实施方式六作进一步说明,步骤5中判断该CAD文档的签名信息是否正确的过程为:
步骤51、遍历含章形CAD文档,获取所有直线实体的坐标数据;
步骤52、根据步骤51获取的坐标数据计算出所述含章形CAD文档的哈希值,所述哈希值为128位;
步骤53、根据从加密狗中的私钥及步骤52获取的哈希值获取1024位签名信息;
步骤54、将步骤53获取的签名信息与步骤4获取的签名信息进行比较,
比较结果如果一致,则该CAD文档的签名验证正确;比较结果不一致,则该CAD文档的签名验证失败。
具体实施方式九:下面结合图8说明本实施方式,本实施方式对实施方式一作进一步说明,还原模块的工作流程为:
步骤A、判断CAD文档是否已经被还原,
判断结果为是,退出该程序;判断结果为否,执行步骤B;
步骤B、判断该CAD文档是否通过验章,
判断结果为是,执行步骤C;判断结果为否,验章未通过,退出该程序;
步骤C、还原该CAD文档的篡改信息水印;
步骤D、还原该CAD文档的签名信息水印,完成该CAD文档的还原。