本发明涉及数据加密技术领域,特指一种数据加密方法及其系统。
背景技术:
现有技术中用于对较短的数据加密的方法较为复杂,处理时长较长。
技术实现要素:
本发明的目的在于克服现有技术的缺陷,提供一种数据加密方法及其系统,可以解决现有加密方法较为复杂,处理时长较长的问题。
实现上述目的的技术方案是:
本发明提供了一种数据加密方法,包括以下步骤:
获取未加密数据;
设定公钥及函数,根据所述公钥及函数进行计算,得到私钥;
根据所述私钥的第一段对所述未加密数据进行第一次加密,得到初步加密数据;
根据所述私钥的第二段对所述初步加密数据进行第二次加密,得到最终加密数据。
本发明的有益效果是,采用公钥和函数计算出私钥,继而利用私钥对未加密数据进行两次加密,得到加密数据,在安全性的基础上提升了处理速度。
本发明数据加密方法的进一步改进在于,所述的获取未加密数据包括以下步骤:
获取原始数据;
根据所述原始数据得到校验码,将所述校验码置于所述原始数据的末尾,得到未加密数据。
本发明数据加密方法的进一步改进在于,所述的根据所述私钥的第一段对所述未加密数据进行第一次加密,得到初步加密数据包括以下步骤:
将所述未加密数据的每一位数字与所述私钥的第一段的数字相加求和,并取和的末位数字组成初步加密数据。
本发明数据加密方法的进一步改进在于,所述的根据所述私钥的第二段对所述初步加密数据进行第二次加密,得到最终加密数据包括以下步骤:
根据所述私钥的第二段的数字大小,将所述初步加密数据的对应的前几个的字节移动至所述初步加密数据的末尾,组成最终加密数据。
本发明还提供了一种数据加密系统,包括:
获取单元,用于获取未加密数据;
输入单元,用于设定公钥及函数;
与所述输入单元连接的计算单元,用于根据所述公钥及函数进行计算,得到私钥;
与所述计算单元和所述获取单元均连接的第一次加密单元,用于根据所述私钥的第一段对所述未加密数据进行第一次加密,得到初步加密数据;以及
与所述第一次加密单元连接的第二次加密单元,用于根据所述私钥的第二段对所述初步加密数据进行第二次加密,得到最终加密数据。
本发明数据加密系统的进一步改进在于,所述获取单元包括:
原始数据获取模块,用于获取原始数据;
连接于所述原始数据获取模块的校验模块,用于根据所述原始数据得到校验码,并将校验码置于所述原始数据的末尾,得到所述未加密数据。
本发明数据加密系统的进一步改进在于,所述第一次加密单元用于将所述未加密数据的每一位数字与所述私钥的第一段的数字相加求和,并取和的末位数字组成初步加密数据。
本发明数据加密系统的进一步改进在于,所述第二次加密单元用于根据所述私钥的第二段的数字大小,将所述初步加密数据的对应的前几个的字节移动至所述初步加密数据的末尾,组成最终加密数据。
本发明还提供了一种数据解密方法,包括以下步骤:
接收最终加密数据及公钥;
获取函数,根据所述公钥及函数进行计算,得到私钥;
根据所述私钥的第二段对所述最终加密数据进行第一次解密,得到初步加密数据;
根据所述私钥的第一段对所述初步加密数据进行第二次解密,得到未加密数据。
本发明还提供了一种数据解密系统,包括:
接收单元,用于获取最终加密数据及公钥;
输入单元,用于输入函数;
与所述接收单元和输入单元连接的计算单元,用于根据所述公钥及函数进行计算,得到私钥;
与所述计算单元和所述接收单元均连接的第一次解密单元,用于根据所述私钥的第二段对所述最终加密数据进行第一次解密,得到初步加密数据;以及
与所述第一次加密单元连接的第二次加密单元,用于根据所述私钥的第一段对所述初步加密数据进行第二次解密,得到未加密数据。
附图说明
图1为本发明数据加密方法的流程图。
图2为本发明数据加密系统的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
参阅图1,本发明提供了一种数据加密方法,可对任意的代码进行加密,具有处理速度较快的特点。例如,本发明可以应用在赛鸽比赛中对赛鸽编号的代码进行加密。每个赛鸽的腿部绑有代表该赛鸽的脚环,该脚环内置有该赛鸽对应的代码,通过位于终点的扫描仪器对脚环进行扫描并识别代码,从而确认赛鸽到达终点的先后顺序,对每个赛鸽分配的代码进行加密,能够有效地防止参赛者的作弊行为。
下面结合附图对本发明数据加密方法进行说明。
如图1所示,本发明数据加密方法包括以下步骤:
执行步骤S1:获取原始数据。接着执行步骤S2。
执行步骤S2:根据原始数据得到校验码,将所述校验码置于所述原始数据的末尾,得到未加密数据。具体地,原始数据经CRC校验(即循环冗余校验)算法,如CRC7、CRC16、CRC32、MD5等算法进行处理而得到校验码,该校验码用于解密后对原始数据进行校验。
执行步骤S3:设定公钥及函数,根据所述公钥及函数进行计算,得到私钥“ab”。具体地,私钥的类型可以是Char类型、short类型、int类型和long类型,根据不同类型可以得到不同长度的私钥。且私钥包括两段,第一段为“a”,第二段为“b”。接着执行步骤S4。
执行步骤S4:根据所述私钥的第一段“a”对所述未加密数据进行第一次加密,得到初步加密数据。具体包括以下步骤:
将所述未加密数据的每一位数字与所述私钥的第一段的数字“a”相加求和,并取和的末位数字组成初步加密数据。接着执行步骤S5。
执行步骤S5:根据所述私钥的第二段“b”对所述初步加密数据进行第二次加密,得到最终加密数据。具体包括以下步骤:
将所述初步加密数据的前b个字节移动至所述初步加密数据的末尾,组成最终加密数据。至此完成了对原始数据的加密。
在一实施例中,利用本发明的数据加密方法对6位数字代码的原始数据“123456”进行加密,该数据为十六进制数,两位数字组成一个字节。经CRC7算法处理得到校验码为“5F”,则得到未加密数据为“1234565F”。设定公钥为“0202”,且设定函数为f(x)=x+1,则计算可得到私钥“0203”,其中私钥的第一段为“02”,私钥的第二段为“03”。
在第一次加密中,将未加密数据“1234565F”中的每位数字与“02”相加求和,并取和的末位数字组成初步加密数据“34567871”(例如未加密数据末位的F,由于F+2=11,取11的末位数字,得到初步加密数据末位为1)。
在第二次加密中,将初步加密数据“34567871”的前“03”个字节“345678”移动至该初步加密数据的末尾,得到最终加密数据“71345678”。
与上述数据加密方法对应的数据解密方法包括以下步骤:
接收最终加密数据及公钥。该最终加密数据是由上述数据加密方法得到的。
获取函数,根据所述公钥及函数进行计算,得到私钥。
根据所述私钥的第二段对所述最终加密数据进行第一次解密,得到初步加密数据。具体地,根据所述私钥的第二段的数字大小,将所述最终加密数据对应的前几个字节移动至所述最终加密数据的前端,组成初步加密数据。
根据所述私钥的第一段对所述初步加密数据进行第二次解密,得到未加密数据。具体地,将所述初步加密数据的每一位数字与所述私钥的第一段的数字相减求差,取差或差的补数组成初步加密数据。
其中,未加密数据中包括原始数据和校验码,判断校验码与原始数据是否匹配,当校验码与原始数据匹配时删除校验码即可得到原始数据。至此完成了对最终加密数据的解密。
在一实施例中,利用本发明的数据解密方法对8位数字代码的最终加密数据“71345678”进行解密,该数据为十六进制数,两位数字组成一个字节。接收到公钥为“0202”,且已知函数为f(x)=x+1,则计算可得到私钥“0203”,其中私钥的第一段为“02”,私钥的第二段为“03”。
在第一次解密中,将最终加密数据“71345678”的后“03”个字节“345678”移动至该初步加密数据的前端,得到初步加密数据“34567871”。
在第二次解密中,将初步加密数据“34567871”中的每位数字与“02”相减求差,若差为正数则取差、若差为负数则取差的补数,组成未加密数据“1234565F”(例如初步加密数据末位的1,由于1-2=-1,取-1的补数,由于-1≡F(mod 16),得到初步加密数据末位为F)。
由于未加密数据“1234565F”中,“5F”为校验码,利用CRC7算法进行校验,删除未加密数据中的“5F”,则得到原始数据“123456”。
下面对本发明数据加密系统进行说明。
如图2所示,本发明数据加密系统包括:
获取单元10,用于获取未加密数据。
具体地,所述获取单元10包括原始数据获取模块11和连接于原始数据获取模块11的校验模块12,其中,原始数据获取模块11用于获取原始数据;校验模块12用于根据所述原始数据得到校验码,并将校验码置于所述原始数据的末尾,得到所述未加密数据。
输入单元21,用于设定公钥及函数。
与输入单元21连接的计算单元22,用于根据所述公钥及函数进行计算,得到私钥ab、
与计算单元22和获取单元10均连接的第一次加密单元31,用于根据所述私钥的第一段a对所述未加密数据进行第一次加密,得到初步加密数据。具体地,第一次加密单元31是用于将所述未加密数据的每一段数字与a相加求和,并取和的末位数字组成初步加密数据。
与第一次加密单元31连接的第二次加密单元32,用于根据所述私钥的第二段b对所述初步加密数据进行第二次加密,得到最终加密数据。具体地,第二次加密单元32是用于将所述初步加密数据的前b位数字移动至所述未加密数据的末尾,组成最终加密数据。
下面对本发明数据解密系统进行说明。
本发明数据解密系统,包括:
接收单元,用于获取最终加密数据及公钥。
输入单元,用于输入函数。
与所述接收单元和输入单元连接的计算单元,用于根据所述公钥及函数进行计算,得到私钥;
与所述计算单元和所述接收单元均连接的第一次解密单元,用于根据所述私钥的第二段对所述最终加密数据进行第一次解密,得到初步加密数据。具体地,第一次解密单元是用于根据所述私钥的第二段的数字大小,将所述最终加密数据对应的前几个字节移动至所述最终加密数据的前端,组成初步加密数据。
与所述第一次加密单元连接的第二次加密单元,用于根据所述私钥的第一段对所述初步加密数据进行第二次解密,得到未加密数据。具体地,第二次解密单元是用于将所述初步加密数据的每一位数字与所述私钥的第一段的数字相减求差,取差或差的补数组成初步加密数据。
连接于所述第二次解密单元的校验单元,用于在未加密数据包括原始数据和校验码时,对未加密数据进行校验,且当校验码与原始数据匹配时,删除校验码而得到原始数据。
本发明数据加密方法及其系统适用于对任意代码进行加密,具有处理速度快的优势。
以上结合附图实施例对本发明进行了详细说明,本领域中普通技术人员可根据上述说明对本发明做出种种变化例。因而,实施例中的某些细节不应构成对本发明的限定,本发明将以所附权利要求书界定的范围作为本发明的保护范围。