随着云计算应用的发展,解决云计算的安全问题迫在眉睫,尤其解决具有海量用户的网络应用服务行业的信息安全,这种云计算的安全需求主要是要提高海量用户的密钥交换、文件加密和数据的完整性验证的速度,使用现有技术已经不能满足处理大数据的安全需求,若通过增加认证中心的设备投入,还是杯水车薪。国内目前在社保卡和交通卡的用户量达到几亿人,用户的数据量十分大,已属于大数据处理的范畴,若使用双钥密码体制如:RSA或ECC算法,建立加密系统和各种安全协议,理论上可行,实际上无法实现。
社保卡和交通卡为提高密钥交换、数据加密和完整性验证的速度,不得已违法现有国家信息安全有关管理规定和标准,采用轻量级密码算法建立身份认证、数据加密和数据完整性验证协议,且用户的密钥基本不变,但是,使用建立轻量级密码算法建立安全协议,必须保证对称密钥一次一变,这是常理,对称密钥固定不变,这就给密钥管理和安全协议都留下重大隐患。
为解决基于云计算下海量用户的信息安全问题,我们提出采用轻量级密码算法和一种安全单钥管理方法,来建立文件加密和数据完整性验证协议,保证对称密钥一次一变,不重复使用,满足社保卡、交通卡等其他具有海量用户的数据加密市场需求。从而,建立一种基于云计算的大数据文件加密传输系统。
一、云计算的信息安全的架构
1、云计算的云用户客户机端的信息安全架构
在云用户端使用基于USB接口的智能卡,将智能卡作为云用户端的加密系统硬件设备,在智能卡芯片里,建立云用户端的加密系统,写入轻量级密码算法、摘要算法、单钥密钥组合生成算法、云用户端文件的加密和数字签名协议,云用户端密文文件的解密和签名验证协议,且写入数据:智能卡芯片的标识和一套密钥种子表Ci即:C1、C2、……、Cn的元素,i=l~n,n为全体云用户的数量总和。
每个云用户的客户机端智能卡芯片都有唯一的标识,且两两互不相同,每位云用户都持有不同的一支基于USB接口的智能卡。
2、云计算认证中心端的信息安全架构
在云计算平台端建立认证中心,认证中心由认证服务器和加密卡硬件设备组成,在认证服务器的PCI接口上插入加密卡,将加密卡作为云计算平台认证中心端的加密系统硬件设备,在加密卡的芯片里,建立认证中心端的加密系统,写入轻量级密码算法、摘要算法、单钥密钥组合生成算法、一套密钥种子表D、密钥种子表C元素的加密和数字签名协议、云用户之间密钥的交换协议,在云计算平台的认证中心端认证服务器的硬盘存储区,将全体云用户的客户机端智能卡芯片里的密钥种子表Ci的元素,存储在用户密钥数据库中,该用户密钥数据库中的每条记录包含字段内容为:①云用户的客户机端智能卡芯片的标识Ti、②密钥种子表Ci元素的密文即:Ci’、③密钥种子表Ci元素的数字签名即:密钥种子表Ci元素摘要信息Gi的密文、④一组时间戳Hi和随机数Ji,其中:一组时间戳和随机数,作为单钥密钥组合生成算法中的选取参数,对表D的元素进行选取,将选出的元素合成一组存储密钥Ki,并用该存储密钥Ki来加密密钥种子表Ci的元素,并对密钥种子表Ci元素进行数字签名,其中:i=l~n,Hi即:H1、H2、……、Hn,Ji即:J1、J2、……、Jn, Ci即:C1、C2、……、Cn, Ci’即:CI’、C2’、……、Cn’,Gi即:G1、G2、……、Gn,n为全体云用户数量总和。
二、轻量级密码的密钥管理
采用一种安全单钥管理技术进行轻量级密码的密钥管理,来建立云计算环境下,大数据的文件加密传输和密钥安全交换,其中:大数据指:文件数量十分大或文件长度十分长。
1、过程密钥
设:过程密钥为:CK,由云用户的客户机端智能卡芯片里的随机数发生器实时产生一组128比特的随机数,用该组随机数作为过程密钥或云用户端的过程密钥CK,用过程密钥CK对云用户端的文件进行加密和数字签名,再用一组用户密钥SK,来加密过程密钥CK,生成过程密钥CK的密文即:CK’,将CK’经过认证中心端解密和再次加密后,转发给其他云用户,CK的明文不出智能卡或加密卡的芯片,实现两云用户之间通过认证中心,进行过程密钥CK的安全交换。
2、用户密钥
设:用户密钥为:SK,由云用户的客户机端智能卡芯片里的单钥密钥组合生成算法,实时产生一组用户密钥或云用户端的用户密钥SK,用户密钥SK适用于加密过程密钥CK,在密钥初始化过程中,由认证中心端加密卡芯片里的随机数发生器,生成一组F1字节随机数,F1=1424或1680字节,将F1字节的随机数组成,一套W×Y的密钥种子表C。
其中:表C的元素为Cu v,u=0~w-l,v=O~y-l,Cri v占0.5字节,或l字节,W=89,或105,Y=16,或32。
设:云用户的客户机端智能卡芯片的标识Ti对应的密钥种子表为:Ci,将密钥种子表Ci的元素存放在云用户的客户机端智能卡芯片里,当运行云用户端文件的加密和数字签名协议时,由一组时间戳和随机数组成的单钥密钥组合生成算法,对密钥种子表Ci的元素进行选取,将选出的Y个元素合成一组用户密钥SK,其中:Y=16,或32;每套密钥种子表Ci都对应一支智能卡,设:全体云用户客户机端智能卡芯片里密钥种子表分别为:C1、C2、……、Cn,n为全体云用户数量的总和,其中:Cd、Ce(l≤d或e
单钥密钥组合生成算法和密钥种子表Ci,都存储在云用户的客户机端智能卡芯片里,且生成的用户密钥明文不出智能卡芯片,保证用户密钥在云用户端的存储和运行安全。
在认证中心端加密卡的芯片里,用存储密钥Ki,将云用户的客户机端智能卡芯片里的密钥种子表Ci的元素加密成密文,并将密钥种子表Ci的元素以密文的形式,分别与对应的云用户的客户机端智能卡芯片的标识、以及生成对应存储密钥Ki的选取参数即:一组时间戳和随机数,一起事先存储在认证中心端的用户密钥数据库中。
当认证中心端的密钥种子表Ci密文被调用时,是在认证中心加密卡芯片里被解密成明文,全体密钥种子表Ci元素的明文不出加密卡芯片,保证全体密钥种子表Ci元素在认证中心端的存储和运行安全,其中:i=l~n,n为全体云用户的数量总和。
3、存储密钥
设:存储密钥为:K,由认证中心加密卡芯片里的单钥密钥组合生成算法,产生一组存储密钥K,存储密钥K用于加密全体密钥种子表C元素,在密钥初始化过程中,事先由物联网认证中心端加密卡芯片里的随机数发生器,生成一组F2字节随机数,F2=1424或1680字节,将F2字节的随机数组成,一套wxY的密钥种子表D。
其中:表D的元素为Du v,u=O~w-l,v=0~y-l,Duv占0.5字节,或1字节,W=89,或105,Y=16,或32。
将表D的元素存放在物联网认证中心加密卡卡芯片里,用一组时间戳和随机数组成的单钥密钥组合生成算法,对密钥种子表D的元素进行选取,将选出的Y个元素合成一组存储密钥K。
设:用于加密密钥种子表Ci的元素的存储密钥Ki共n个,即:K1、K2、……、Kn,用对应的存储密钥Ki将全体密钥种子表Ci的元素加密,生成密钥种子表Ci的密文,即:C1’、C2’、……、Cn’,并将Ci’存储在认证中心端的用户密钥数据库中,其中:i=l~n,n为全体云用户的数量总和。
4、单钥密钥组合生成算法
单钥密钥组合生成算法,是通过一组时间戳和随机数组成的选取参数,来对一套密钥种子表的元素进行选取,用时间戳对密钥种子表的“行”元素进行选取,选出Y行Y列的密钥种子表的子表,再根据随机数,对Y行Y列的密钥种子表的“列”元素进行选取,选出Y个元素,并合成一组密钥,其中:Y=16或32,存储密钥K和用户密钥SK都是由单钥密钥组合生成算法实时产生。
若时间戳为:10位数字组成,即:“年”由4位数字组成即:XXXO年- XXX9年,即:取0-9年,“月”由2位数字组成即:取1月一12月,“日”由2位数字组成即:取1日-31日,“时”由2位数字组成即:取0时—23时,如:2013122819,表示2013年12月28日19点。
随机数由Y=16或,32位,二进制数组成,当Y=16位二进制数时,每位随机数为4比特二进制数,每位随机数的二进制数据的数值为0~15,如:0011,1010,0000,……,1111,0110,其二进制数据的数值为:3,10,0,……,15,6;当Y=32位二进制数时,每位随机数的二进制数的数值为:0~31,女口:00110,10100,00000,……,11111, 01100,
其二进制数据的数值为:6,20,0,……,31,12。
5、过程密钥CK、用户密钥SK和存储密钥K
过程密钥CK、用户密钥SK和存储密钥K,都为:128,CK的重复率为:l/2128,基本上实现一次一密。
用户密钥SK、存储密钥K,都是通过一组时间戳和随机数,来对密钥种子表D或B的元素进行选取,将选出的Y个元素合成一组用户密钥SK、或存储密钥K,若选取参数中的随机数为16位,密钥种子表D或B的元素为8比特,时间戳为“年、月、日、时”的情况下,在一小时内,用户密钥SK和存储密钥K的重复率都为:1/264;若选取参数中的随机数为32位,密钥种子表D或表C的元素为4比特,时间戳为“年、月、日、时”的情况下,在一小时内,用户密钥SK和存储密钥K的重复率都为:1/2160,用户密钥SK和存储密钥K也基本上为一次一密。
三、基于云计算的安全协议
1、云用户端文件的加密和数字签名协议
云用户A的客户机端加密系统在智能卡芯片里,调用摘要算法对云用户A的客户机端的文件进行摘要获得“摘要”信息L1,再调用随机数发生器产生一组随机数,用该组随机数作为云用户A的客户机端的过程密钥CK,对云用户A的客户机端的文件进行加密,生成云用户A的客户机端的文件密文,并对“摘要”信息L1进行加密,得到“摘要”信息L1的密文即:得到云用户A的客户机端的文件数字签名,在智能卡芯片里,产生一组时间戳1和随机数1,根据单钥密钥组合生成算法,用时间戳1和随机数1,对密钥钥种子表CA的元素进行选取,选出Y个元素合成一组云用户A的客户机端的用户密钥SKA,用SKA将过程密钥CK加密成密文即:CK’,并将云用户A的客户机端智能卡芯片的标识、云用户A的客户机端文件的密文、云用户A的客户机端文件的数字签名、云用户A的客户机端的过程密钥CK的密文、生成SKA的时间戳1和随机数l,共6组数据,一起发送给云计算平台的认证中心端,其中:CA=Cl~Cn,i=l~n,Y=16,或32。
2、“密钥种子”表C元素的加密和数字签名协议
云计算平台的认证中心端加密系统,在加密卡芯片里产生一组时间戳Hi和随机数Ji,根据单钥密钥组合生成算法,用时间戳Hi和随机数Ji,对密钥种子表D的元素进行选取,将选出的Y个元素合成一组存储密钥Ki,用该存储密钥Ki来加密密钥种子表Ci的元素,得到密钥种子表Ci元素的密文即:Ci’,并用该存储密钥Ki来对密钥种子表Ci元素进行数字签名即:对密钥种子表Ci元素的“摘要”信息Gi进行加密,得到“密钥种子”表Ci元素“摘要”信息Gi的密文即:数字签名,再将云用户的客户机端智能卡芯片的标识、密钥种子表Ci的元素密文即:Ci’、密钥种子表Ci元素的数字签名、以及对应生成存储密钥Ki的时间戳Hi和随机数Ji,一并事先存储在认证中心端的用户密钥数据库中,其中:Hi=HI~Hn, Ji=J1~Jii, Ci=CI~Cn, Ci’=C1’~Cn’,Gi=G1~Gn, Ki=K1~Kn, i=l~n, Y=16,或32。
3、云用户之间用户密钥的交换协议
当认证中心端接收收到云用户A的客户机端发送来的6组数据后,认证中心端加密系统,首先,根据云用户A的客户机端智能卡芯片的标识,在用户密钥数据库中定位对应云用户A的客户机端智能卡芯片标识的记录,将记录中生成用户密钥的“密钥种子”表CA密文即:表CA’、生成存储密钥KA的一组时间戳HA和随机数JA,一并取出输入认证中心端的加密卡芯片中,在加密卡芯片里,根据单钥密钥组合生成算法,用生成存储密钥KA的一组时间戳HA和随机数JA,对表D的元素进行选取,选出Y个元素并合成存储密钥KA,使用KA将“密钥种子”表CA的元素密文即:CA’解密,得到“密钥种子”表CA的元素明文,使用KA对密钥种子表CA元素的数字签名进行解密,得到“密钥种子”表CA的元素“摘要”信息GA的明文,再调用摘要算法对CA的明文元素进选取参数行摘要,得到“摘要”信息GA1,通过对比GA和GAI是否相同?来判断“密钥种子”表CA的元素是否被篡改,确定“密钥种子”表CA的元素是否完整、可信,再根据单钥密钥组合生成算法,用生成云用户A的客户机端SKA的时间戳1和随机数1,对“密钥种子”表CA的元素明文进行选取,选出Y个元素并合成用户密钥SKA1,若表CA的元素已通过了完整性验证,则SKA=SKA1,用该SKAI将云用户A的客户机端的过程密钥CK的密文即:CK’解密,得到云用户A的客户机端过程密钥的明文即:CK,再根据云用户B的客户机端智能卡芯片的 标识,在用户密钥数据库中,取出对应云用户B的客户机端的“密钥种子”表CB元素的密文、“密钥种子”表CB元素 的数字签名、对应生成存储密钥KB的选取参数:时间戳HB和随机数JB,在加密卡芯片里,根据单钥密钥组合生成算法,用对应生成存储密钥KB的选取参数:时间戳HB和随机数JB,对“密钥种子”表D的元素进行选取,将选出Y个元素合成一组存储密钥KB,用KB将对应云用户B的客户机端的“密钥种子”表CB元素的密文解密成明文,使用KB对密钥种子表CB元素的数字签名进行解密,得到“密钥种子”表CB的元素“摘要”信息GB的明文,再调用摘要算法对CB的明文元素进选取参数行摘要,得到“摘要”信息GB1,通过对比GB和GB1是否相同?来判断“密钥种子”表CB的元素是否被篡改,来确定“密钥种子”表CB的元素是否完整、可信,再产生一组时间戳2和随机数2,根据单钥密钥组合生成算法,用时间戳2和随机数2,对云用户B的客户机端的 “密钥种子”表CB元素进行选取,将选出Y个元素合成一组对应云用户B的客户机端的用户密钥SKB,用SKB将云用户A的客户机端的过程密钥CK加密成密文,将云用户B的客户机端智能卡芯片的标识、云用户A的客户机端文件的密文、云用户A的客户机端文件的数字签名、过程密钥CK的密文、产生云用户B的客户机端用户密钥SKB的时间戳2 和随机数2,共6组数据,一起发送给云用户B的客户机端。
在云用户之间密钥的交换协议中,也包含了密钥种子表CA、CB的元素密文解密和签名验证协议的内容,其中:CA=CI~Cn,CB=CI~Cn,CA≠CB,HA=Hl~Hn,HB=H1~Hn,HA≠HB,JA=JI—Jn,JB=J1~Jn,JA≠JB,KA=KI~Kn, KB=K1~Kn, KA≠KB, GA=G1~Gn, GA=GA1或GA≠GA1; GB=Gl~Gn, GB-GBl或GB≠GBI,GA≠GB,i=l~n。
4、云用户端密文文件的解密和签名验证协议
云用户端收到认证中心端发来的6组数据后,云用户B的客户机端加密系统,在智能卡芯片里,根据单钥密钥组合生成算法,用产生云用户B的客户机端用户密钥SKB的时间戳2和随机数2,对密钥种子表CB的元素进行选取,将选出Y个元素合成一组云用户B的客户机端的用户密钥SKB1,若表CB的元素已通过了完整性验证,则SKB-SKB1,用SKBI将过程密钥CK的密文解密得到过程密钥
CK的明文,用过程密钥CK将云用户端的文件密文解密,得到云用户端文件的明文,再用过程密钥CK将云用户A的客户机端文件的数字签名解密,得到云用户A的客户机端文件的摘要信息L1,调用智能卡芯片里的摘要算法,对云用户A的客户机端文件进行摘要,得到云用户A的客户机端文件的摘要信息L2,通过对比L1和L2是否相同,来确认云用户A的客户机端传输来的签名文件是否可信、完整,其中:CB=CI~Cn,i=l~n。
四、云计算加密系统密钥管理和安全协议的优势
(1)过程密钥、用户密钥和存储密钥,都是在智能卡或加密卡的芯片里生成,明文不出芯片,生成用户密钥的“密钥种子”是以密文的形式在芯片外存储。
①过程密钥是在智能卡芯片里生成,并以密文的形式在两云用户之间通过认证中心进行传输,保证过程密钥的安全交换;
②用户密钥SK是在云用户的客户机端智能卡芯片里生成,生成用户密钥SK的单钥密钥组合生成算法和生成用户密钥SK的一套密钥种子表Ci,也是存储在智能卡芯片里,在认证中心端,生成用户密钥SK的单钥密钥组合生成算法存储在加密卡芯片里,生成用户密钥SK的一套“密钥种子”表Ci,是以密文形式存储在认证中心端的用户密钥数据库中,保证用户密钥SK在云用户端和认证中心端的存储、交换和运行安全,其中:i=l~n;
③存储密钥K是在加密卡的芯片里生成,单钥密钥组合生成算法和一套密钥种子表D,也是存储在加密卡芯片里,保证存储密钥K的存储和运行安全。
(2)用一次一变的用户密钥,来加密一次一变的过程密钥,生成的过程密钥密文也具有随机性,一次一变,也都属于一组乱码,无规律性,破译者无法将公开获得的大量过程密钥的密文,作为破译条件—一“重复报”(使用相同的单钥将多份不同的明文报文加密成密文报文),来破过程密钥,或破译用户密钥,或破译生成用户密钥的“密钥种子”表Ci的元素。
用一次一变的存储密钥Ki,来加密具有随机数性质的“密钥种子”表Ci,生成的密钥种子表Ci的密文即:Ci’也具有随机性,也都属于一组乱码,破译者无法将表Ci’,作为破译条件——“重复报”来破译表Ci,或者来破译存储密钥Ki,其中:i=l~n,n为全体云用户数量的总和。
(3)由于云用户的数量十分大,在认证中心端需要存储的数据量也十分大,对应云用户端生成用户密钥SK的每套“密钥种子”表Ci的元素,占1424字节或1680字节存储空间,当云用户的数量达到5~6亿时,对应云用户端涉及的数据量,属于大数据的范畴,用单钥密钥组合生成算法产生一次一变的存储密钥Ki,来加密对应各个云用户端生成用户密钥SK的“密钥种子”表Ci的元素,保证存放在认证中心端全体对应云用户端的“密钥种子”表Ci中元素的存储安全,不需要购置大量的加密卡硬件设备,来存储海量的生成用户密钥SK的“密钥种子”表Ci的元素,能大大节约认证中心的建设成本,使得单—认证中心能管理海量如:5~6亿的云用户,其l:Fi: i=l~n。
(4)采用一种安全单钥管理技术建立各种安全协议的策略,是基于智能卡和加密卡的芯片是可信的基础上,云用户端文件的加密和数字签名协议、云用户端密文文件的解密和签名验证协议,是在智能卡芯片里完成,密钥种子表C元素的加密和数字签名协议、云用户之间密钥的交换协议,是在加密卡的芯片里完成,都是基于“芯片级”的协议,安全性高。
(5)在云用户之间用户密钥的交换协议中,云用户平台的认证中心端的加密系统,不仅对文件发送端对应的“密钥种子”表Ci元素进行完整性验证,而且,也对文件接收端对应的密钥种子表Ci元素进行完整性验证,从而,防止云用户平台的认证中心对应云用户端的密钥种子表Ci的元素被篡改或被克隆,其中:i=l~n。
小知识之云计算云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。