对实时数据采集系统的数据进行加密解密的方法以及系统与流程

文档序号:16007423发布日期:2018-11-20 20:14阅读:335来源:国知局
本发明涉及数据采集和信息安全领域,并且更具体地,涉及一种对实时数据采集系统的数据进行加密解密的方法以及系统。
背景技术
:工业现场的数据采集一直以来都是基于现场总线技术实现,基于安全考虑无法应用物联网技术。目前,有很多加密算法,但可用于数据加密的算法如ECC、RC、AES、IDEA、DES、3DES、RSA、SHA等,由于受嵌入式处理器运算速度的限制,均无法满足实时采集并加密的要求。因此,需要一种满足实时采集数据的过程中快速对采集的数据进行加密解密的方法和系统,。技术实现要素:为了解决现有技术存在的无法满足在工业现场实时采集数据并对其快速加密解密的技术问题,本发明提供一种对实时数据采集系统的数据进行加密的方法,所述方法包括:选择一个14位随机数,并按照从左至右的顺序在所述14位随机数的第7位和第14位之后分别添加1个奇偶检验位以生成16位短密钥kE,重叠使用4个短秘钥kE组成64位DES密钥,其中所述64位密钥中数的数位号按照从左至右的顺序依次是1至64号;去掉所述64位DES密钥中的奇偶校验位,按照第一变换表进行换位以生成56位的密钥,并将56位的密钥分解为两个28位的C[0]和D[0],其中所述第一变换表是8行7列的表格;对所述C[0]和D[0]进行m次迭代,并将第I次迭代生成的C[I]和D[I]串联起来生成新的56位的C[I]D[I],将所述C[I]D[I]按照第二变换表进行换位生成1个48位的子密钥K[I],其中所述第二变换表是6行8列的表格,1≤I≤m;将实时数据采集系统的数据分割成若干个64位的块,按照第三变换表对每个块进行变换,以生成新的64位数据块,其中所述第三变换表是8行8列的表格;针对每个新的64位数据块,将所述数据块分解为两个32位的L[0]和R[0];对所述L[0]和R[0],采用m个子密钥对其进行加密以生成加密数据。进一步地,对所述64位DES密钥按照第一变换表进行换位以生成56位的密钥是指将64位DES密钥中的奇偶校验位舍弃,然后按照第一变换表中标注的数位号将剩余的56位的密钥按照其原来为64位DES密钥时的数位填入第一变换表中。进一步地,所述将56位的密钥分解为两个28位的C[0]和D[0]是指将56位密钥的1至28位作为C[0],将29至56位作为D[0]。进一步地,所述m的值是16。进一步地,对所述C[0]和D[0]进行m次迭代,并将第I次迭代生成的C[I]和D[I]串联起来生成新的56位的C[I]D[I],将所述C[I]D[I]按照第二变换表进行换位生成1个48位的子密钥K[I]包括:按照迭代位移表中迭代次数对应的左移位数将C[I-1]和D[I-1]向左移动以生成C[I]和D[I],其中,所述I的初始值是1,1≤I≤m;将每次迭代后生成的C[I]和D[I]串联起来生成新的56位的C[I]D[I],按照第二变换表标注的数位号,将C[I]D[I]组成的56位数中对应数位号的数填入第二变换表中得到的48位数据即为子密钥K[I]。进一步地,将实时数据采集系统的数据分割成若干个64位的块,按照第三变换表对每个块进行变换,以生成新的64位数据块包括:将实时数据采集系统的数据分割成若干个64位的数据块,当最后一个数据块的数据长度不足64位时,将其扩展为64位;按照第三变换表标注的数位号,将每个64位数据块中对应数位号的数填入第三变换表中。进一步地,针对每个新的64位数据块,将所述数据块分解为两个32位的L[0]和R[0]是指将64位数据块的1至32位作为L[0],将33至64位作为R[0]。进一步地,对所述L[0]和R[0],采用m个子密钥对其进行加密以生成加密数据包括:按照第四变换表标注的数位号,将R[I-1]中对应数位号的数填入第四变换表中,生成新的48位数据E[I-1],其中所述I的初始值是1,1≤I≤m,其中所述第四变换表是6行8列的表格;异或E[I-1]和K[I],并将所述异或的结果按照从左到右的顺序分为8个6位的数据B[J],其中J的初始值是1,1≤J≤8;将B[J]的第1位和第6位组合为一个2位长度的变量M,将所述变量M作为设置的S[J]表中的行号;将B[J]的第2位到第5位组合为一个4位长度的变量N,将所述变量N作为设置的S[J]表中的列号;根据所述S[J]表的行号和列号选择对应的数值,并将所选择行号和列号对应的十进制数值变换为四位长度的二进制数,以及用S[J][M][N]来取代B[J];按B[1]至B[8]的顺序将其组合为一个32位数据,并按照第五变换表标注的数位号,将所述32位数中对应数位号的数填入第五变换表中,生成新的32位数据P[I],其中所述第五变换表是4行8列的表格;异或P[I]和L[I-1],并将异或的结果作为R[I],将R[I-1]作为L[I];将R[m]和L[m]按照从R[m]到L[m]的顺序组合成一个整体R[m]L[m],按照第六变换表标注的数位号,将R[m]L[m]中对应数位号的数填入第六变换表中,得到64位数据块的加密结果,其中所述第六变换表是8行8列的表格。进一步地,所述方法还包括对使用4个短秘钥kE组成的64位DES密钥进行加密,并将加密的DES密钥和实时数据采集系统经过DES算法加密的数据传输至服务器,其中:实时安全数据采集系统根据自身的处理能力,确定密钥的长度并向服务器申请加密参数,以及将服务器传输的加密参数进行保存,其中,所述传输的加密参数包括根据实时安全数据采集系统请求的长度确定的椭圆曲线Ep(a,b)的参数p、a、b,椭圆曲线Ep(a,b)上的基点G、基点G的阶n以及根据实时安全数据采集系统自身的私钥k和基点G确定的公钥K,其中,K=kG;将生成的16位DES短密钥kE编码到椭圆曲线Ep(a,b)上的一点ME,并根据点ME、公钥K和生成的随机数r计算点C1和C2;实时数据采集系统将点C1和C2的值和经过加密的数据打包传输给服务器。进一步地,确定椭圆曲线的参数包括:选择确定椭圆曲线参数的方程y2=x3+ax+b;按照实时安全数据采集系统申请的密钥长度选取一个大于3的素数,并赋值给p,然后选择小于p-1的非负整数a;按满足式(4a3+27b2)modp≠0的条件确定b。进一步地,所述确定的a、b的值是[0,p-1]中的整数。进一步地,所述确定的椭圆曲线上的基点G(x,y)=(xG,yG),其中,所述xG和yG是小于p-1的非负整数,且不能选择无穷远点O∞作为基点,如下式所示:(xG,yG)∈E(Fp),G≠O∞。进一步地,计算所述椭圆曲线的基点G的阶n的公式为:nG=O∞式中,n是基点G=(xG,yG)∈E(Fp)的阶,n必须是素数,并且满足pt≠1(modn),其中1≤t<30,以及p≠nh,其中h是余因子h=#E(Fp)/n。进一步地,所述根据点ME、公钥K和生成的随机数r计算点C1和C2的公式为:C1=ME+rKC2=rG式中,ME=(xE,yE),其X坐标为DES短密钥kE转换成的十进制或者十六进制的数值,Y坐标为由椭圆曲线参数的方程y2=x3+ax+b计算得到的正整数,r为随机数,且r∈[1,n-1],n为所述椭圆曲线上基点G的阶。根据本发明的另一方面,本发明提供一种对加密的实时数据采集系统的数据进行解密的方法,所述方法包括:服务器接收实时数据采集系统发送的数据包,其中,所述数据包包括点C1和C2的值和经过DES算法加密的数据;服务器按照公式ME=C1-kC2计算得到编码到椭圆曲线Ep(a,b)上的16位短密钥ME,式中,k为私钥,k∈[1,n-2],n为所述椭圆曲线上基点G的阶;将所述短密钥ME按照编码时的方法逆向解码得到16位的DES短密钥kE;重叠使用4个短密钥kE组成64位DES密钥,并采用与加密过程相同的运算,进行解密运算,运算过程中子密钥K[I]的顺序与加密时相反,即加密时子密钥顺序是K[1]K[2]…K[16],解密时子密钥顺序改为K[16]K[15]…K[2]K[1]。根据本发明的另一方面,本发明提供一种对实时数据采集系统的数据进行加密的系统,所述系统包括:第一密钥生成单元,其用于选择一个14位随机数,并按照从左至右的顺序在所述14位随机数的第7位和第14位之后分别添加1个奇偶检验位以生成16位短密钥kE,重叠使用4个短秘钥kE组成64位DES密钥,其中所述64位密钥中数的数位号按照从左至右的顺序依次是1至64号;第二密钥生成单元,其用于去掉所述64位DES密钥中的奇偶校验位,按照第一变换表进行换位以生成56位的密钥,并将56位的密钥分解为两个28位的C[0]和D[0],其中所述第一变换表是8行7列的表格;子密钥生成单元,其用于对所述C[0]和D[0]进行m次迭代,并将第I次迭代生成的C[I]和D[I]串联起来生成新的56位的C[I]D[I],将所述C[I]D[I]按照第二变换表进行换位生成1个48位的子密钥K[I],其中所述第二变换表是6行8列的表格,1≤I≤m;数据块生成单元,其用于将实时数据采集系统的数据分割成若干个64位的块,按照第三变换表对每个块进行变换,以生成新的64位数据块,其中所述第三变换表是8行8列的表格;数据块分解单元,其用于针对每个新的64位数据块,将所述数据块分解为两个32位的L[0]和R[0];加密数据生成单元,其用于对所述L[0]和R[0],采用m个子密钥对其进行加密以生成加密数据。进一步地,所述第二密钥单元用于将64位DES密钥中的奇偶校验位舍弃,然后按照第一变换表中标注的数位号将剩余的56位的密钥按照其原来为64位DES密钥时的数位填入第一变换表中。进一步地,所述第二密钥单元还用于将56位密钥的1至28位作为C[0],将29至56位作为D[0]。进一步地,所述子密钥生成单元为迭代次数m赋的值是16。进一步地,其特征在于,子密钥生成单元对所述C[0]和D[0]进行m次迭代,并将第I次迭代生成的C[I]和D[I]串联起来生成新的56位的C[I]D[I],将所述C[I]D[I]按照第二变换表进行换位生成1个48位的子密钥K[I]包括:按照迭代位移表中迭代次数对应的左移位数将C[I-1]和D[I-1]向左移动以生成C[I]和D[I],其中,所述I的初始值是1,1≤I≤m;将每次迭代后生成的C[I]和D[I]串联起来生成新的56位的C[I]D[I],按照第二变换表标注的数位号,将C[I]D[I]组成的56位数中对应数位号的数填入第二变换表中得到的48位数据即为子密钥K[I]。进一步地,数据块生成单元将实时数据采集系统的数据分割成若干个64位的块,按照第三变换表对每个块进行变换,以生成新的64位数据块包括:将实时数据采集系统的数据分割成若干个64位的数据块,当最后一个数据块的长度不足64位时,将其扩展为64位;按照第三变换表标注的数位号,将每个64位数据块中对应数位号的数填入第三变换表中。进一步地,数据块分解单元针对每个新的64位数据块,将所述数据块分解为两个32位的L[0]和R[0]是指将64位数据块的1至32位作为L[0],将33至64位作为R[0]。进一步地,加密数据生成单元包括:第一数据生成单元,其用于按照第四变换表标注的数位号,将R[I-1]中对应数位号的数填入第四变换表中,生成新的48位数据E[I-1],其中所述I的初始值是1,1≤I≤m;第二数据生成单元,其用于异或E[I-1]和K[I],并将所述异或的结果按照从左到右的顺序分为8个6位的数据B[J],其中J的初始值是1,1≤J≤8;行号确定单元,其用于将B[J]的第1位和第6位组合为一个2位长度的变量M,将所述变量M作为设置的S[J]表中的行号;列号确定单元,其用于将B[J]的第2位到第5位组合为一个4位长度的变量N,将所述变量N作为设置的S[J]表中的列号;第三数据生成单元,其用于根据所述S[J]表的行号和列号选择对应的数值,并将所选择的十进制数值变换为四位长度的二进制数,以及用S[J][M][N]来取代B[J];第四数据生成单元,其用于按B[1]至B[8]的顺序将其组合为一个32位数据,并按照第五变换表标注的数位号,将所述32位数中对应数位号的数填入第五变换表中,生成新的32位数据P[I],其中所述第五变换表是4行8列的表格;第五数据生成单元,其用于异或P[I]和L[I-1],并将异或的结果作为R[I],将R[I-1]作为L[I];第六数据生成单元,其用于将R[m]和L[m]按照从R[m]到L[m]的顺序组合成一个整体R[m]L[m],按照第六变换表标注的数位号,将R[m]L[m]中对应数位号的数填入第六变换表中,得到64位数据块的加密结果,其中所述第六变换表是8行8列的表格。进一步地,所述系统还包括密钥参数生成单元、密钥编码单元和传输单元,其中:密钥参数生成单元,其用于根据实时安全数据采集系统自身的处理能力,确定密钥的长度并向服务器申请加密参数,将服务器传输的加密参数进行保存,其中,所述传输的加密参数包括根据实时安全数据采集系统请求的长度确定的椭圆曲线Ep(a,b)的参数p、a、b,椭圆曲线Ep(a,b)上的基点G、基点G的阶n以及服务器根据实时安全数据采集系统申请的密钥长度确定的私钥k和基点G和基点G确定的公钥K,K=kG;密钥编码单元,其用于将生成的16位DES短密钥kE编码到椭圆曲线Ep(a,b)上的一点ME,并根据点ME、公钥K和生成的随机数r计算点C1和C2;传输单元,其用于将点C1和C2的值和经过加密的数据打包传输给服务器。进一步地,确定椭圆曲线的参数包括:选择确定椭圆曲线参数的方程y2=x3+ax+b;按照实时安全数据采集系统申请的密钥长度选取一个大于3的素数,并赋值给p,然后选择小于p-1的非负整数a;按满足式(4a3+27b2)modp≠0的条件确定b。进一步地,所述确定的a、b的值是[0,p-1]中的整数。进一步地,所述确定的椭圆曲线上的基点G(x,y)=(xG,yG),其中,所述xG和yG是小于p-1的非负整数,且不能选择无穷远点O∞作为基点,如下式所示:G(x,y)=(xG,yG)∈E(Fp),G≠O∞。进一步地,计算所述椭圆曲线的基点G的阶n的公式为:nG=O∞式中,n是基点G=(xG,yG)∈E(Fp)的阶,n必须是素数,并且满足pt≠1(modn),其中1≤t<30,以及p≠nh,其中h是余因子h=#E(Fp)/n。进一步地,所述根据点ME、公钥K和生成的随机数r计算点C1和C2的公式为:C1=ME+rKC2=rG式中,ME=(xE,yE),其X坐标为DES短密钥kE转换成的十进制或者十六进制的数值,Y坐标为由椭圆曲线参数的方程y2=x3+ax+b计算得到的正整数,r为随机数,且r∈[1,n-1],n为所述椭圆曲线上基点G的阶。根据本发明的另一方面,本发明还提供一种对加密的实时数据采集系统的数据进行解密的系统,所述系统包括:数据接收单元,其用于接收实时数据采集系统发送的数据包,其中,所述数据包包括点C1和C2的值和经过DES算法加密的数据;第一短密钥确定单元,其用于按照公式ME=C1-kC2计算得到编码到椭圆曲线Ep(a,b)上的16位第一短密钥ME,式中,k为私钥,k∈[1,n-2],n为所述椭圆曲线上基点G的阶;第二短密钥确定单元,其用于将所述第一短密钥ME按照编码时的方法逆向解码得到16位的第二短密钥kE;解密单元,其用于重叠使用4个短密钥kE组成64位DES密钥,并采用与所述加密过程相同的运算,进行解密运算,运算过程中子密钥K[I]的顺序与加密时相反,即加密时子密钥顺序是K[1]K[2]…K[16],解密时子密钥顺序改为K[16]K[15]…K[2]K[1]。本发明所提供的技术方案通过DES算法将实时数据采集系统的数据分成64位大小的块,用16位密钥重叠组成64位的密钥来加密每个64位的数据块,但在数据打包传输时只对16位密钥进行再加密并打包传送,极大地提高了加密运算的速度,不仅满足数据实时采集系统的数据实时加密的需求,且满足对处理器速度、功耗和稳定性的要求,有效节省了系统内存和处理时间。本发明通过对标准加密算法进行改良,实现简单,能够应用在绝大多数ARM硬件平台和全部DSP硬件上,所述方法和系统除了用于基于无线物联网的实时采集的数据的加密保护,还可用于其他有实时性要求的数据加密保护场合。附图说明通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:图1为根据本发明优选实施方式的对实时数据采集系统的数据加密的方法的流程图;图2为根据本发明优选实施方式的对实时数据采集系统的数据解密的方法的流程图;图3为根据本发明优选实施方式的对实时数据采集系统的数据加密的系统的结构图;图4为根据本发明优选实施方式的对实时数据采集系统的数据解密的系统的结构图。具体实施方式现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属
技术领域
的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。除非另有说明,此处使用的术语(包括科技术语)对所属
技术领域
的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。图1为根据本发明优选实施方式的对实时数据采集系统的数据加密的方法的流程图。如图1所示,本优选实施方式所述的对实时数据采集系统的数据进行加密的方法100从步骤101开始。在步骤101,选择一个14位随机数,并按照从左至右的顺序在所述14位随机数的第7位和第14位之后分别添加1个奇偶检验位以生成16位短密钥kE,重叠使用4个短秘钥kE组成64位DES密钥,其中所述64位密钥中数的数位号按照从左至右的顺序依次是1至64号。在本优选实施方式中,设14位的随机数为k1k2k3k4…k14,每7位再生成一个奇偶校验位放置于K8和K16位置构成16位的短秘钥kE=k1k2k3k4…k15k16。重叠使用4个短秘钥kE组成64位DES秘钥。在步骤102,去掉所述64位DES密钥中的奇偶校验位,按照第一变换表进行换位以生成56位的密钥,并将56位的密钥分解为两个28位的C[0]和D[0],其中所述第一变换表是8行7列的表格。优选地,对所述64位DES密钥按照第一变换表进行换位以生成56位的密钥是指将64位DES密钥中的奇偶校验位舍弃,然后按照第一变换表中标注的数位号将剩余的56位的密钥按照其原来为64位DES密钥时的数位填入第一变换表中。优选地,所述将56位的密钥分解为两个28位的C[0]和D[0]是指将56位密钥的1至28位作为C[0],将29至56位作为D[0]。在本优选实施例中,所述第一变换表如表1所示。表157494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124从表1可以看出,所述表格中没有64位DES密钥中的奇偶位,即第8、16、24、32、40、48、56和64位,故将剩余的56位的密钥按照其原来为64位DES密钥时的数位填入表1中即可得到变换后的56位密钥。将所述变换后的密钥分解,即可得到1至28位的C[0]和29至56位的D[0]在步骤103,对所述C[0]和D[0]进行m次迭代,并将第I次迭代生成的C[I]和D[I]串联起来生成新的56位的C[I]D[I],将所述C[I]D[I]按照第二变换表进行换位生成1个48位的子密钥K[I],其中所述第二变换表是6行8列的表格,1≤I≤m。优选地,所述m的值是16。优选地,对所述C[0]和D[0]进行m次迭代,并将第I次迭代生成的C[I]和D[I]串联起来生成新的56位的C[I]D[I],将所述C[I]D[I]按照第二变换表进行换位生成1个48位的子密钥K[I]包括:按照迭代位移表中迭代次数对应的左移位数将C[I-1]和D[I-1]向左移动以生成C[I]和D[I],其中,所述I的初始值是1,1≤I≤m。将每次迭代后生成的C[I]和D[I]串联起来生成新的56位的C[I]D[I],按照第二变换表标注的数位号,将C[I]D[I]组成的56位数中对应数位号的数填入第二变换表中得到的48位数据即为子密钥K[I]。在本优选实施方式中,迭代位移表如表2所示,第二变换表如表3所示。表2表3令I=1,则根据表2所示,在第1次迭代时,将C[0]和D[0]向左移1位生成C[1]和D[1]。将C[1]和D[1]组成一个整体C[1]D[1]。将C[1]D[1]组成的56位密钥中的数按照其对应的数位号填入表3中进行变换,则得到48位的子密钥K[1],循环执行上述步骤即可得到16个48位的子密钥。在步骤104,将实时数据采集系统的数据分割成若干个64位的块,按照第三变换表对每个块进行变换,以生成新的64位数据块,其中所述第三变换表是8行8列的表格。优选地,将实时数据采集系统的数据分割成若干个64位的块,按照第三变换表对每个块进行变换,以生成新的64位数据块包括:将实时数据采集系统的数据分割成若干个64位的数据块,当最后一个数据块的数据长度不足64位时,将其扩展为64位;按照第三变换表标注的数位号,将每个64位数据块中对应数位号的数填入第三变换表中。在本优选实施方式中,所述第三变换表如表4所示。将实时数据采集系统的数据分割成若干个64位的块,当最后一个数据块的数据长度不足64位时,通过补零的方式将其扩展为64位。并按照表4中标注的数位号,将每个64位数据块中对应数位号的数填入表4中。在步骤105,针对每个新的64位数据块,将所述数据块分解为两个32位的L[0]和R[0]。优选地,针对每个新的64位数据块,将所述数据块分解为两个32位的L[0]和R[0]是指将64位数据块的1至32位作为L[0],将33至64位作为R[0]。在步骤106,对所述L[0]和R[0],采用m个子密钥对其进行加密以生成加密数据。优选地,对所述L[0]和R[0],采用m个子密钥对其进行加密以生成加密数据包括:按照第四变换表标注的数位号,将R[I-1]中对应数位号的数填入第四变换表中,生成新的48位数据E[I-1],其中所述I的初始值是1,1≤I≤m,其中所述第四变换表是6行8列的表格;异或E[I-1]和K[I],并将所述异或的结果按照从左到右的顺序分为8个6位的数据B[J],其中J的初始值是1,1≤J≤8;将B[J]的第1位和第6位组合为一个2位长度的变量M,将所述变量M作为设置的S[J]表中的行号;将B[J]的第2位到第5位组合为一个4位长度的变量N,将所述变量N作为设置的S[J]表中的列号;根据所述S[J]表的行号和列号选择对应的数值,并将所选择行号和列号对应的十进制数值变换为四位长度的二进制数,以及用S[J][M][N]来取代B[J];按B[1]至B[8]的顺序将其组合为一个32位数据,并按照第五变换表标注的数位号,将所述32位数中对应数位号的数填入第五变换表中,生成新的32位数据P[I],其中所述第五变换表是4行8列的表格;异或P[I]和L[I-1],并将异或的结果作为R[I],将R[I-1]作为L[I];将R[m]和L[m]按照从R[m]到L[m]的顺序组合成一个整体R[m]L[m],按照第六变换表标注的数位号,将R[m]L[m]中对应数位号的数填入第六变换表中,得到64位数据块的加密结果,其中所述第六变换表是8行8列的表格。在本优选实施方式中,第四变换表如表5所示。表5令I=1,按照表5标注的数位号,将R[0]中对应数位号的数填入表5中,生成新的48位数据E[0];异或E[0]和K[1],并将所述异或的结果按照从左到右的顺序分为8个6位的数据B[J],1≤J≤8,即第1位到第6位称为B[1],第7位到第12位称为B[2],依此类推,第43位到第48位称为B[8];令与B[J]对应的表S[J]分别如表6至13所示;表61441312151183106125907015741421311061211953841148136211151297310501512824917511314100613表71518146113497213120510313471528141201106911501471110413158126932151381013154211671205149表81009146315511312711428137093461028514121115113649815301112125101471101306987415143115212表97131430691012851112415138115615034721211014910690121171315131452843150610113894511127214表102124171011685315130149141121247131501510398642111101378159125630141181271142136150910453表111211015926801334147511101542712956113140113891415528123704101131164321295151011141760813表124112141508133129751061130117491101435122158614111312371410156805926111381410795015142312表131328461511110931450127115138103741256110149271141912142061013153582114741081315129035611将B[J]的第1位和第6位组合为一个2位长度的变量M,将所述变量M作为设置的S[J]表中的行号;将B[J]的第2位到第5位组合为一个4位长度的变量N,将所述变量N作为设置的S[J]表中的列号;根据所述S[J]表的行号和列号选择对应的数值,并将所选择行号和列号对应的十进制数值变换为四位长度的二进制数,以及用S[J][M][N]来取代B[J]。本优选实施方式中,第五变换表如表14所示。表14求出B[1]至B[8]后,按B[1]至B[8]的顺序将其组合为一个32位数据,并按照表14标注的数位号,将所述32位数中对应数位号的数填入表14中,生成新的32位数据P[1],其中所述第五变换表是4行8列的表格;异或P[1]和L[0],并将异或的结果作为R[1],将R[0]作为L[1];将求取R[1]和L[1]的步骤重复执行得到R[16]和L[16],将R[16]和L[16]按照从R[16]到L[16]的顺序组合成一个整体R[16]L[16]。在优选实施方式中,第六变换表如表15所示。表1540848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725将R[16]L[16]按照表15标注的数位号,将R[16]L[16]中对应数位号的数填入表15中,得到64位数据块的加密结果。在步骤107,对使用4个短秘钥kE组成的64位DES密钥进行加密,并将加密的DES密钥和实时数据采集系统经过DES算法加密的数据传输至服务器。优选地,所述对使用4个短秘钥kE组成的64位DES密钥进行加密,并将加密的DES密钥和实时数据采集系统经过DES算法加密的数据传输至服务器包括:实时安全数据采集系统根据自身的处理能力,确定密钥的长度并向服务器申请加密参数,以及将服务器传输的加密参数进行保存,其中,所述传输的加密参数包括根据实时安全数据采集系统请求的长度确定的椭圆曲线Ep(a,b)的参数p、a、b,椭圆曲线Ep(a,b)上的基点G、基点G的阶n以及根据实时安全数据采集系统自身的私钥k和基点G确定的公钥K,其中,K=kG;将生成的16位DES短密钥kE编码到椭圆曲线Ep(a,b)上的一点ME,并根据点ME、公钥K和生成的随机数r计算点C1和C2;实时数据采集系统将点C1和C2的值和经过加密的数据打包传输给服务器。优选地,确定椭圆曲线的参数包括:选择确定椭圆曲线参数的方程y2=x3+ax+b;按照实时安全数据采集系统申请的密钥长度选取一个大于3的素数,并赋值给p,然后选择小于p-1的非负整数a;按满足式(4a3+27b2)modp≠0的条件确定b。优选地,所述确定的a、b的值是[0,p-1]中的整数。优选地,所述确定的椭圆曲线上的基点G(x,y)=(xG,yG),其中,所述xG和yG是小于p-1的非负整数,且不能选择无穷远点O∞作为基点,如下式所示:(xG,yG)∈E(Fp),G≠O∞。优选地,计算所述椭圆曲线的基点G的阶n的公式为:nG=O∞式中,n是基点G=(xG,yG)∈E(Fp)的阶,n必须是素数,并且满足pt≠1(modn),其中1≤t<30,以及p≠nh,其中h是余因子h=#E(Fp)/n。优选地,所述根据点ME、公钥K和生成的随机数r计算点C1和C2的公式为:C1=ME+rKC2=rG式中,ME=(xE,yE),其X坐标为DES短密钥kE转换成的十进制或者十六进制的数值,Y坐标为由椭圆曲线参数的方程y2=x3+ax+b计算得到的正整数,r为随机数,且r∈[1,n-1],n为所述椭圆曲线上基点G的阶。图2为根据本发明优选实施方式的对实时数据采集系统的数据解密的方法的流程图。如图2所示,本发明所述的对加密的实时数据采集系统的数据进行解密的方法200从步骤201开始。在步骤201,服务器接收实时数据采集系统发送的数据包,其中,所述数据包包括点C1和C2的值和经过DES算法加密的数据;在步骤202,服务器按照公式ME=C1-kC2计算得到编码到椭圆曲线Ep(a,b)上的16位短密钥ME,式中,k为私钥,k∈[1,n-2],n为所述椭圆曲线上基点G的阶;在步骤203,将所述短密钥ME按照编码时的方法逆向解码得到16位的DES短密钥kE;在步骤204,重叠使用4个短密钥kE组成64位DES密钥,并采用与加密过程相同的运算,进行解密运算,运算过程中子密钥K[I]的顺序与加密时相反,即加密时子密钥顺序是K[1]K[2]…K[16],解密时子密钥顺序改为K[16]K[15]…K[2]K[1]。图3为根据本发明优选实施方式的对实时数据采集系统的数据加密的系统的结构图。如图3所示,本发明所述对实时数据采集系统的数据进行加密的系统300包括:第一密钥生成单元301,其用于选择一个14位随机数,并按照从左至右的顺序在所述14位随机数的第7位和第14位之后分别添加1个奇偶检验位以生成16位短密钥kE,重叠使用4个短秘钥kE组成64位DES密钥,其中所述64位密钥中数的数位号按照从左至右的顺序依次是1至64号;第二密钥生成单元302,其用于去掉所述64位DES密钥中的奇偶校验位,按照第一变换表进行换位以生成56位的密钥,并将56位的密钥分解为两个28位的C[0]和D[0],其中所述第一变换表是8行7列的表格;子密钥生成单元303,其用于对所述C[0]和D[0]进行m次迭代,并将第I次迭代生成的C[I]和D[I]串联起来生成新的56位的C[I]D[I],将所述C[I]D[I]按照第二变换表进行换位生成1个48位的子密钥K[I],其中所述第二变换表是6行8列的表格,1≤I≤m;数据块生成单元304,其用于将实时数据采集系统的数据分割成若干个64位的块,按照第三变换表对每个块进行变换,以生成新的64位数据块,其中所述第三变换表是8行8列的表格;数据块分解单元305,其用于针对每个新的64位数据块,将所述数据块分解为两个32位的L[0]和R[0];加密数据生成单元306,其用于对所述L[0]和R[0],采用m个子密钥对其进行加密以生成加密数据;密钥参数生成单元307,其用于根据实时安全数据采集系统自身的处理能力,确定密钥的长度并向服务器申请加密参数,将服务器传输的加密参数进行保存,其中,所述传输的加密参数包括根据实时安全数据采集系统请求的长度确定的椭圆曲线Ep(a,b)的参数p、a、b,椭圆曲线Ep(a,b)上的基点G、基点G的阶n以及服务器根据实时安全数据采集系统申请的密钥长度确定的私钥k和基点G确定的公钥K,K=kG;密钥编码单元308,其用于将生成的16位DES短密钥kE编码到椭圆曲线Ep(a,b)上的一点ME,并根据点ME、公钥K和生成的随机数r计算点C1和C2;传输单元309,其用于将点C1和C2的值和经过加密的数据打包传输给服务器。优选地,所述第二密钥单元301用于将64位DES密钥中的奇偶校验位舍弃,然后按照第一变换表中标注的数位号将剩余的56位的密钥按照其原来为64位DES密钥时的数位填入第一变换表中。优选地,所述第二密钥单元302还用于将56位密钥的1至28位作为C[0],将29至56位作为D[0]。优选地,所述子密钥生成单元303为迭代次数m赋的值是16。优选地,其特征在于,子密钥生成单元303对所述C[0]和D[0]进行m次迭代,并将第I次迭代生成的C[I]和D[I]串联起来生成新的56位的C[I]D[I],将所述C[I]D[I]按照第二变换表进行换位生成1个48位的子密钥K[I]包括:按照迭代位移表中迭代次数对应的左移位数将C[I-1]和D[I-1]向左移动以生成C[I]和D[I],其中,所述I的初始值是1,1≤I≤m;将每次迭代后生成的C[I]和D[I]串联起来生成新的56位的C[I]D[I],按照第二变换表标注的数位号,将C[I]D[I]组成的56位数中对应数位号的数填入第二变换表中得到的48位数据即为子密钥K[I]。优选地,数据块生成单元将实时数据采集系统的数据分割成若干个64位的块,按照第三变换表对每个块进行变换,以生成新的64位数据块包括:将实时数据采集系统的数据分割成若干个64位的数据块,当最后一个数据块的长度不足64位时,将其扩展为64位;按照第三变换表标注的数位号,将每个64位数据块中对应数位号的数填入第三变换表中。优选地,数据块分解单元305针对每个新的64位数据块,将所述数据块分解为两个32位的L[0]和R[0]是指将64位数据块的1至32位作为L[0],将33至64位作为R[0]。优选地,加密数据生成单元306包括:第一数据生成单元361,其用于按照第四变换表标注的数位号,将R[I-1]中对应数位号的数填入第四变换表中,生成新的48位数据E[I-1],其中所述I的初始值是1,1≤I≤m;第二数据生成单元362,其用于异或E[I-1]和K[I],并将所述异或的结果按照从左到右的顺序分为8个6位的数据B[J],其中J的初始值是1,1≤J≤8;行号确定单元363,其用于将B[J]的第1位和第6位组合为一个2位长度的变量M,将所述变量M作为设置的S[J]表中的行号;列号确定单元364,其用于将B[J]的第2位到第5位组合为一个4位长度的变量N,将所述变量N作为设置的S[J]表中的列号;第三数据生成单元365,其用于根据所述S[J]表的行号和列号选择对应的数值,并将所选择的十进制数值变换为四位长度的二进制数,以及用S[J][M][N]来取代B[J];第四数据生成单元366,其用于按B[1]至B[8]的顺序将其组合为一个32位数据,并按照第五变换表标注的数位号,将所述32位数中对应数位号的数填入第五变换表中,生成新的32位数据P[I],其中所述第五变换表是4行8列的表格;第五数据生成单元367,其用于异或P[I]和L[I-1],并将异或的结果作为R[I],将R[I-1]作为L[I];第六数据生成单元368,其用于将R[m]和L[m]按照从R[m]到L[m]的顺序组合成一个整体R[m]L[m],按照第六变换表标注的数位号,将R[m]L[m]中对应数位号的数填入第六变换表中,得到64位数据块的加密结果,其中所述第六变换表是8行8列的表格。优选地,确定椭圆曲线的参数包括:选择确定椭圆曲线参数的方程y2=x3+ax+b;按照实时安全数据采集系统申请的密钥长度选取一个大于3的素数,并赋值给p,然后选择小于p-1的非负整数a;按满足式(4a3+27b2)modp≠0的条件确定b。优选地,所述确定的a、b的值是[0,p-1]中的整数。优选地,所述确定的椭圆曲线上的基点G(x,y)=(xG,yG),其中,所述xG和yG是小于p-1的非负整数,且不能选择无穷远点O∞作为基点,如下式所示:G(x,y)=(xG,yG)∈E(Fp),G≠O∞。优选地,计算所述椭圆曲线的基点G的阶n的公式为:nG=O∞式中,n是基点G=(xG,yG)∈E(Fp)的阶,n必须是素数,并且满足pt≠1(modn),其中1≤t<30,以及p≠nh,其中h是余因子h=#E(Fp)/n。优选地,所述根据点ME、公钥K和生成的随机数r计算点C1和C2的公式为:C1=ME+rKC2=rG式中,ME=(xE,yE),其X坐标为DES短密钥kE转换成的十进制或者十六进制的数值,Y坐标为由椭圆曲线参数的方程y2=x3+ax+b计算得到的正整数,r为随机数,且r∈[1,n-1],n为所述椭圆曲线上基点G的阶。图4为根据本发明优选实施方式的对实时数据采集系统的数据解密的系统的结构图。如图4所示,本优选实施方式所述的对加密的实时数据采集系统的数据进行解密的系统400包括:数据接收单元401,其用于接收实时数据采集系统发送的数据包,其中,所述数据包包括点C1和C2的值和经过DES算法加密的数据;第一短密钥确定单元402,其用于按照公式ME=C1-kC2计算得到编码到椭圆曲线Ep(a,b)上的16位第一短密钥ME,式中,k为私钥,k∈[1,n-2],n为所述椭圆曲线上基点G的阶;第二短密钥确定单元403,其用于将所述第一短密钥ME按照编码时的方法逆向解码得到16位的第二短密钥kE;解密单元404,其用于重叠使用4个短密钥kE组成64位DES密钥,并采用与所述加密过程相同的运算,进行解密运算,运算过程中子密钥K[I]的顺序与加密时相反,即加密时子密钥顺序是K[1]K[2]…K[16],解密时子密钥顺序改为K[16]K[15]…K[2]K[1]。已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。通常地,在权利要求中使用的所有术语都根据他们在
技术领域
的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1