一种计算机加密方法及系统的制作方法

文档序号:8499941阅读:377来源:国知局
一种计算机加密方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机及信息安全领域,提供了一种计算机加密方法,用于安全快速地将明文数据加密成密文,同时提供了一种使用该方法的计算机加密系统,以通过多个部件并行加密。
【背景技术】
[0002]密码学是一门既古老又年轻的学科,其产生时间很早,到了现代,由于计算机的出现,密码学和计算机结合在一起,获得了极大的发展,现在的计算机及信息安全都依赖于计算机加密,因此安全且快速的计算机加密算法对于现代信息社会是极其重要的。
[0003]在密码学中,需要被加密的数据称为明文,加密后的数据称为密文。加密和解密算法通常都是在密钥的控制下进行的,分别称为加密密钥和解密密钥。如果加密密钥和解密密钥相同,或者可以由其中一个轻易推算出另一个,则称该算法为对称密码算法;如果不相同,并且从其中一个难以推算出另一个,则称为非对称密码算法。现在常用的非对称密码算法是RSA算法,该算法的安全性依赖于大整数分解的困难度,但是,随着现在计算机速度的不断提升,大整数分解的速度也越来越快,因此为了安全性,RSA算法所需的密钥长度也不断变长,由于非对称密码算法本身的加密时间就相对较长,在密钥长度变长后,加密耗时就变得更长,加密效率就变得更低。基于此,RSA算法通常只用于身份认证和数字签名领域,当需要大量加密计算时,通常优先考虑使用对称密码算法。对于对称密码算法,现在常用的是DES算法(包括DES算法的各种变形,例如3DES等),但是,对DES算法的安全性疑虑一直存在,一方面是对其S盒选择的安全疑虑(由于S盒是NSA人为选择的,其选择标准没有公开,一直受到质疑),另一方面由于DES算法是1972年提出的,这么多年来大量密码学研宄人员对其进行了大量研宄,通过这些研宄,攻击DES算法所需的计算量也在不断降低。

【发明内容】

[0004]本发明的目的就在于克服现有技术的不足与缺陷,提供了一种新的计算机加密方法,该方法采用对称密码体制,并且不采用S盒这种人为选择的加密机制,而从纯数学上保证其加密的安全性。相对于现在常用的加密算法,本发明提供的方法不仅加密速度快,而且安全性高。
[0005]另一方面,基于上述加密方法,本发明还提出了一种计算机加密系统,该系统包括包括三个协同工作的部件:CPU,加密卡和一个USB-key,由每个部件完成加密算法的一部分内容,由于采用上述三个部件共同完成加密,基于该加密方法的特点,每个部件仅能获得其自己的一部分信息,因此提高了加密过程的安全性,即使攻击者获取了其中一个部件的控制权,如果不能获取其他两个部件的信息,也不会破坏整体的安全性。
【附图说明】
[0006]图1: 128位密钥K的表示
[0007]图2:本发明的计算机加密系统
【具体实施方式】
[0008]首先,我们假设二进制的明文P和密文C的位数都是64的倍数,如果不是64的倍数则补上前导0使得P的位数是64的倍数,则通过下述方法加密出的密文C的位数也是64的倍数。从而P和C可以按照如下表述的形式进行组织,分别划分成n个64位的块:
[0009]P = PiPaPs......Pn
[0010]C =......Cn
[0011]其中PjPCi都是64位的块(i = 1,2, 3,……,n)o
[0012]密钥K是一个128位数,划分成4个32的块,即
[0013]K = A1A2A3A4
[0014]其中Ai都是 32 位的块(i = 1,2,3,4)。
[0015]将AjP A 3连接,形成一个64位的块^,即B1= A人,将4和A 4连接,形成一个64位的块B2,即B2= A 2A4,将A3和A 2连接,形成一个64位的块B 3,即B3= A 3A2?另外,我们用I来表示密钥K的第i位,密钥K的表示可见图1。
[0016]另外,设置两个迭代映射h (x)和t2 (x),如下:
[0017](x) = 1.19x, t2 (x) = x/1.29
[0018]对上述两个迭代映射的迭代用下式表示,我们用t(x) (y)来表示函数t(x)迭代y次,即:
[0019](x) (1) = (x),
[0020](x) (n) = (t: (x) (n-l))n>l
[0021]t2(x) (1) = t2(x),
[0022]t2(x) (n) = t2(t2(x) (n_l))n>l 时
[0023]上述两个迭代映射的参数(1.19和1.29)不是随意选择的,我们通过对1000以内所有可能的参数(精确到2位小数)进行演算和测试,发现1.19和1.29是雪崩效应最好的两个参数,并且满足严格雪崩准则和位独立准则。
[0024]具体的加密和解密过程如下:
[0025]1)设置变量b = 0,计算迭代映射的两个初始值\和Y 0,以及初始迭代次数I;,如下:
[0026]
[0027]YfBWL
[0028]T0= K60K61K62......K67
[0029]其中,符号?表不异或运算。
[0030]2)变量b增加1 (即b = b+1),按照下式计算Xb,Yb和T b:
[0031]Xb= X h 十 C h 十 Y h
[0032]Yb= Yb—!十 Ch? B3
[0033]Tb= T H循环左移1位,
[0034]其中CQ= 0。
[0035]3)将迭代映射h (x)使用初始值Xb迭代T b次,结果记为t: (Xb) (Tb),将迭代映射t2 (x)使用初始值Yb迭代T b次,结果记为12 (Yb) (Tb)。计算
[0036]Mb= t JXb) (Tb)mod 264
[0037]Nb= t2 (Yb) (Tb)mod 264
[0038]4)按照下式计算,加密/解密第b个明文/密文块,
[0039]Cb= S (P b)十 CV1 十 M b 十 N b
[0040]Pb= S-'(Cb十 Clrf 十 Mb十 Nb)
[0041]其中函数S可以是任意一个可逆函数,S—1就是S的逆函数,如果为了追求加密速度,则S可以选择一个计算简单的可逆函数。进一步的,S可以是现有技术中公知的加密函数(例如DES),则S—1是其相应的解密函数,此时本算法就相当于在该加密函数S基础上增加的一层加密壳,从而隐藏了 S可能具有的安全缺陷,大大提高该加密函数S的安全性。
[0042]5)如果明文/密文还未处理完,则跳转到第2步,否则加密/解密结束。
[0043]基于上述加密方法,还可以设计一种新的计算机加密系统,如果图2,其主要包括三个协同工作的部件:CPU,加密卡和一个USB-key。
[0044]CPU是计算机自身的中央处理器,用户从加密厂商购买加密卡和USB-key,将加密卡通过PC1-E接口插入计算机的插槽内,此后加密卡就不再移动,而USB-key是用户个人持有的一个USB设备,在需要加密时,才由用户插入计算机的USB接口,由于本发明加密算法的特性,上述加密算法的各个步骤可以在不同的部件中完成,其中第I步由加密厂商完成,将计算出的Xtl和Y ο存储于加密卡中,将T C1存储于USB-key中;当进行数据加密或解密时,第2步的Xb和Yb由加密卡计算得出,再将结果发送给USB-key,Tb由USB-key计算得出,第3步也由USB-key计算完成,再将计算得到的Mb和Nb发送给处理器,最后由处理器完成第4步,由处理器将得到的密文发送给加密卡,最后由处理器进行第5步的判断,如果处理完,则结束计算,否则继续计算。
[0045]由于采用上述三个部件共同完成加密,基于该加密方法的特点,每个部件仅能获得其自己的一部分信息,因此提高了加密过程的安全性,即使攻击者获取了其中一个部件的控制权,如果不能获取其他两个部件的信息,也不会破坏整体的安全性。
【主权项】
1.一种计算机数据加密/解密方法,该方法将二进制的明文P加密为密文C,其中P的位数是64的倍数,并将P和C划分成η个64位的块,即 P = P1P2P3……Pn c = C1C2C3……Cn 密钥K是一个128位的数,划分成4个32位的块,即 K = A1A2A3A4 将AJP A 3连接,形成一个64位的块B i,即B1= A人,将4和A 4连接,形成一个64位的块B2,即B2= A 2A4,将A3和A 2连接,形成一个64位的块B 3,即B3= A 3A2,用Ki来表示密钥K的第i位; 设置两个迭代映射h (x)和t2 (x),如下:h (X) = 1.19x, t2 (X) = x/1.29 所述方法的特征在于,其加密和解密的步骤如下: 1)设置变量b= O,计算迭代映射的两个初始值\和Y ο,以及初始迭代次数Ttl,如下: Χ0=Β1ΘΒ2ΦΒ3 Y0= BiffiB2 T0= K60K61K62......K67 其中,符号?表示异或运算; 2)变量b增加I(即b = b+Ι),按照下式计算Xb,Yb和T b: \ — X b_l ? C b-1 田 Y b-1 Yb — Y b-! ? C b_j ffi B 3 Tb= TV1循环左移I位, 其中C。= Oo 3)将迭代映射h(x)使用初始值Xb迭代T b次,结果记为t ! (Xb) (Tb),将迭代映射t2 (x)使用初始值Yb迭代T b次,结果记为12 (Yb) (Tb)。计算Mb= t i(Xb) (Tb)mod 264Nb= 12 (Yb) (Tb)mod 264 4)按照下式计算,加密/解密第b个明文/密文块, Cb= S(Pb)十 Ch 十 Mb十 NbPb= SlCb 十 Clri 十 Mb 十 Nb) 其中函数S可以是任意一个可逆函数,S—1就是S的逆函数。 5)如果明文/密文还未处理完,则跳转到第2步,否则方法结束。
2.如权利要求1所述的计算机数据加密/解密方法,其中函数S可以是一个公知的加密函数。
3.如权利要求1-2任意一项所述的计算机数据加密/解密方法,其中函数S是DES算法。
4.如权利要求1-3任意一项所述的计算机数据加密/解密方法,其中如果P的位数不是64的倍数,则对P补上前导0,使其位数成为64的倍数。
5.一种采用如权利要求1所述方法的计算机加密/解密系统,该系统包括三个协同工作的部件:CPU,加密卡和USB-key,其中CPU是计算机自身的中央处理器,加密卡通过PC1-E接口插入计算机的插槽内,此后加密卡就不再移动,而USB-key是用户个人持有的一个USB设备,在需要加密时,才由用户插入计算机的USB接口, 权利要求1所述的数据加密/解密方法的各个步骤在不同的部件中完成,其中第I步由加密卡和USB-key的生产厂商完成,将计算出的\和Y ^存储于加密卡中,将T ^存储于USB-key中;当进行数据加密或解密时,第2步的Xb和Yb由加密卡计算得出,再将结果发送给USB-key,Tb由USB-key计算得出,第3步也由USB-key计算完成,再将计算得到的Mb和Nb发送给CPU,然后由CPU完成第4步,由CPU将得到的密文发送给加密卡,最后由CPU进行第5步的判断,如果处理完,则结束计算,否则继续计算。
【专利摘要】本发明公开了一种计算机加密方法及系统,该方法采用对称密码体制,通过分块迭代的方式进行加密,不仅加密速度快,而且安全性高。该系统包括三个协同工作的部件:CPU,加密卡和一个USB-key,由每个部件完成加密算法的一部分内容,由于采用上述三个部件共同完成加密,基于该加密方法的特点,加密安全性得到极大地提高。
【IPC分类】H04L29-06, H04L9-06
【公开号】CN104821946
【申请号】CN201510229028
【发明人】徐静, 吴素芹, 徐森, 张成彬, 皋军, 刘其明
【申请人】盐城工学院
【公开日】2015年8月5日
【申请日】2015年5月7日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1