一种数据加密保护及解密方法
技术领域:
本发明涉及一种计算机信息的保护方法,特别涉及一种利用SCE国家标准算法进行高效数据加密保护和解密的方法。
背景技术:
自从1976年迪菲(Diffie)和赫尔曼(Hellman)提出公钥加密体制的思想后,密码学家和数学家为了该思想的具体实现已经研究了超过了三十年,但到目前为止,安全有效的公钥加密体制仍是非常有限的,依据其基于的难题,大致可以将其分为三类:基于对大数分解难题的加密体制、基于有限域离散对数问题的加密体制和基于椭圆曲线离散对数问题的加密体制。其中,由于还没有找到解决椭圆曲线离散对数问题的次(亚)指数时间算法,所以基于椭圆曲线离散对数问题的加密体制具有前两类加密体制无法比拟的优点,例如:在相同的安全强度下,系统参数和密钥的尺寸较短(如160bits的椭圆曲线公钥密码(Elliptic Curve Cryptography,简称ECC)和1024bits的RSA具有相当的安全强度),选择余地较大等。
在现有技术中有关使用SCE国家标准算法进行数据加密技术仍是空白,尚未发现与该主题相关或者相类似的文献报道。
发明内容:
本发明针对上述现有数据加密保护方法所存在的不足,而提供一种采用了国家标准算法SCE的非对称算法,且对称算法采用3DES的数据加密保护方法及解密方法,该方法达到数据加密处理速度快效果,其使用紧凑性加密数据格式,有效减少加密内容冗余。
为了达到上述目的,本发明采用的一种数据加密保护方法,该方法包括如下步骤:
(1)定义紧凑性数据加密格式;
(2)利用3DES算法生成3DES对称密钥;
(3)利用SCE国家标准算法对3DES对称密钥进行加密;
(4)利用SHA1算法计算数据内容的摘要值,形成原文SHA1摘要值;
(5)利用SCE国家标准算法对原文数据摘要进行数据签名;
(6)利用加密后的3DES对称密钥对数据进行加密。
上述方法中使用标签定长的编码方式,实现数据流的连接读取或输入,对于大数据原文不需要预分配大内存块,有效减少内存空间的使用。
上述紧凑性数据格式由版本、算法类型、密钥长度、密文长度、对称密钥、密文内容依次组成。
所述密文内容由签名长度、原文长度、签名、原文内容依次组成。
与上述加密保护方法配套使用的解密方法,其主要包括以下步骤:
(1)读取大于64个字节原始密文到解密缓存区;
(2)解析数据,得到版本、算法类型、密钥长度、密文长度;
(3)根据密钥长度,从解密缓存区读取已加密的3DES对称密钥;
(4)使用SCE算法解密3DES对称密钥,得到3DES对称密钥
(5)使用对称密钥解密原始密文;
(6)解析数据,得到签名长度、原文长度;
(7)根据签名长度,从解密缓冲区读取签名值;
(8)读取固定长度原始密文到解密缓冲区;
(9)使用对称密钥解密原始密文;
(10)将解密数据写入输出流;
(11)将解密数据更新到摘要生成器;
(12)返回步骤(8)操作,直到原始密文读取结束。
根据上述技术方案得到的本发明使用SCE加密算法对数据进行加密保护,同时使用SCE签名算法对数据摘要值进行签名,实现数据的加密及数据内容防篡改数据;其还具有加密处理速度快等优点,使用紧凑性加密数据格式,达到减少加密内容冗余效果。
附图说明:
以下结合附图和具体实施方式来进一步说明本发明。
图1为本发明中数据格式的示意图。
具体实施方式:
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
本发明使用SCE进行数据加密保护,使用特定加密格式,提高数据加密效率。
为达到上述目的采用了如下的技术方案:
(1)使用SEC国家标准算法进行非对称数据签名及非对称数据加密。
(2)使用3DES算法进行数据对称加密。
(3)使用SHA1算法进行数据内容的摘要值计算。
(4)使用紧凑性数据格式进行密文封闭。
(5)使用标签定长的编码方式,实现数据流的连接读取或输入,对于大数据原文不需要预分配大内存块,有效减少内存空间的使用。
这里所涉及的紧凑性数据格式如图1所示,对其上的内容定义如下:
版本:高位4~7bit。0x01为版本1,0x0f为版本16。
算法类型:低位0~3bit。0x00为NID GB192曲线,0x01为NID GB256曲线,其它保留。
密钥长度:1字节。标识3DES对称密钥长度。
密文长度:4个字节。被3DES加密后的密文,最小1字节,最大2^32-1。
对称密钥:被SCE算法加密的3DES密钥。
密文内容:被3DES算法加密的数据密文。
对于密文结构有以下定义:
签名长度:1字节。摘要值的SCE签名值长度。
原文长度:4字节。原始数据内容长度,最小1字节,最大2^32-1。
签名:摘要值的SCE签名值。
原文:原始数据内容。
基于上述原理,本发明进行数据加密的流程如下:
步骤1,定义版本、算法类型,填充输出缓存区第1字节;
步骤2,选择3DES密钥长度(112bit或192bit或其它),填充输出缓存区第2字节;
步骤3,生成3DES对称密钥;
步骤4,使用SCE算法对3DES对称密钥进行加密,将加密后的对称密钥填充输出缓存区第7字节后空间;
步骤5,根据算法类型,确认签名长度,填充加密缓存区第一字节;
步骤6,将原文长度填充加密缓存区第2~5字节;
步骤7,形成原文SHA1摘要值;
步骤8,使用SCE算法对摘要值进行签名,填充签名值到加密缓存区第6字节后空间;
步骤9,填充一定长度原文内容到加密缓存区;
步骤10,使用3DES对加密缓存区进行数据加密,输出密文填充到输入缓存区密文段;
步骤11,将输入缓存区写入输出流;
步骤12,输入缓存区偏移量置0,加密缓存区偏移量置0;
步骤13,重复第9步,直到原文数据读取结束。
上述步骤进行了数据的加密和保护,若要对加密后的数据进行解密还原通过以下步骤实现。
(a1)读取大于64个字节原始密文到解密缓存区;
(a2)解析数据,得到版本、算法类型、密钥长度、密文长度;
(a3)根据密钥长度,从解密缓存区读取已加密的3DES对称密钥;
(a4)使用SCE算法解密3DES对称密钥,得到3DES对称密钥
(a5)使用对称密钥解密原始密文;
(a6)解析数据,得到签名长度、原文长度;
(a7)根据签名长度,从解密缓冲区读取签名值;
(a8)读取固定长度原始密文到解密缓冲区;
(a9)使用对称密钥解密原始密文;
(a10)将解密数据写入输出流;
(a11)将解密数据更新到摘要生成器;
(a12)返回步骤(a8)操作,直到原始密文读取结束。
上述狼操作流程实现了基于国家标准算法SCE对数据进行加密保护和解密的方法。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。