敏感信息的密码学保护方法

时间:2022-10-08 02:29:28

敏感信息的密码学保护方法

摘要:本文介绍了一种可以应用于敏感信息保护的密码学方法--保留格式加密。保留格式加密是一种全新的密码学技术,将一种特定格式的明文加密成相同格式的密文,因此密文的类型和长度与明文相同,不需要改动数据在数据库中的存储结构,降低数据库应用系统改造的成本,可以成为敏感信息保护的有效方法,具有较广的应用前景。

关键词:保留格式加密;敏感信息保护;数据库加密

中图分类号:TP309文献标识码:A文章编号:1007-9599 (2012) 02-0000-02

Cryptology Protection Methods of Sensitive Information

Liu Xiangli

(Songyuan Branch of China Tietong,Songyuan138000,China)

Abstract:The paper introduces a cryptology method which can be used to protect sensitive information.The method is format-preserving encryption (FPE).FPE is a new cryptology method,it can encrypt a plaintext to a ciphertext which has the same format,and as a result,the ciphertext has the same type and length with the plaintext as plaintext.FPE will be the popular method to protect the sensitive information,because it will not change the structure of database and can reduce the cost of software upgrade,so it has wide applications.

Keywords:Format preserving encryption;Sensitive information protection;Database encryption

在2011年,中国互联网发生了史上规模最大的数据泄密事件,从CSDN、天涯等论坛社区,到人人网、开心网、多玩网等多个社交、游戏网站,再到京东商城、当当网、淘宝网等电子商务网站,均牵涉其中。传闻还波及支付宝、工商银行、民生银行及交通银行等支付和金融机构。政府网站也未能幸免,广东省出入境政务服务网站的444万条用户信息也被证实泄露。

黑客固然是数据泄漏的一个因素,很多数据泄漏却是企业内部人员的行为。2006年,美国肯塔基州Corning公司的员工偷了薄过滤器转换接头液晶显示器玻璃的图纸,出售给了国外的公司。2009年,Duracell公司的员工把畅销产品的敏感数据从公司电脑到下载到自己家里的电脑上面,然后发给竞争对手。

这些敏感信息泄漏的根本原因在于数据是以明文形式存储于硬盘或者数据库中。要避免黑客攻击及企业内部人员的泄密,最有效、最根本的办法就是对数据进行加密。然而,使用传统分组密码通常会扩展数据,使数据长度和类型发生变化,比如采用DES算法加密一个18位的身份证号,密文是一个64位的二进制串,这样就破坏了数据库存储身份证号的字段对于数据长度的要求,加密后的密文无法继续存储到数据库中,必须改变现有的存储结构。

一、保留格式加密

如果有一种密码学办法,既能完成数据的加密,又能保证数据的类型与长度不变,那么对数据的加密将不会影响到数据在数据库中的存储,进而不需要改动数据库结构,而且能降低正在运行的应用系统的改动成本。

当前的分组密码不适合于解决这类问题:比如十位的信用卡号是[0,1010-1]中截然不同的数字,但是分组密码使用n为64或者128的分组长度,而域范围为[0,2n-1]。可见:(1)10位的信用卡号加密后的密文是64位,长度改变。(2)密文不一定是[0,9999999999]内的有效数字。(3)金融贸易数据库中存储卡号的字段需要发生改变才能容纳密文的变化。

保留格式加密[1](FPE:Format Preserving Encryption)是最适合于此类加密情况的密码学技术,它将一种特定格式的明文加密成相同格式的密文,也就是:在一个对称密钥k的控制之下,加密明文x成密文y,y具有和x相同的数据类型和长度,可以描述为:F:K×M->M,K是密钥空间,M是明文密文空间。

对一个FPE算法的约束主要包括:

(1)FPE算法要求数据不能被扩充。当FPE算法加密N位数字的时候,它必须输出一个N位数字。

(2)FPE算法要求数据必须能被确定性的加密。数据在数据库中被加密,一个理想化的要求是保留数据库中将该数据所在的列作为主键或者索引的特性,这也是对FPE算法的另一个重要约束。

二、基本方法

FPE问题的提出最早可以追溯到1997年,Smith和Brightwell[2]认为FPE问题有助于数据库和数据仓库的安全,他们如下描述FPE问题:“密文和明文要具有大致相似之处。一个社会安全号码,使用DES算法加密后的密文,不仅不像一个社会安全号码,甚至不会包含任何数字。由于数据库字段定义的是9个字符的社会安全号码,将无法存储DES算法加密后的数据。Visual Basic程序无法读它,一个图形界面无法显示它。对于加密的社会安全号码将什么都不能做,除非在应用程序和物理数据库设计中作出了大量的工作来适应数据格式的变更。”

在2002年,Black和Rogaway[3]在《Ciphers with arbitrary finite domains》一文中提出了三种保留格式加密的算法。

第一种方法是Prefix方法,该方法很简单,但是仅仅工作于小数据集,这个方法本质上在内存里“写下”一个随机的全集合置换表,然后基于该置换表对数据进行加解密.这意味着加解密速度非常快,但是在较大消息空间上建立置换表将会耗费更多的时间。

一个Prefix方法的实际例子如下:为了建立置换表,选择一个基础的密码E如AES;要加密的消息空间M={0,1,2,3,4};计算EK(0)=166,EK(1)=6,EK(2)=130,EK(3)=201,EK(4)=78;那么建立元组I={166,6,130,201,78},得到一个集合J为{3,0,2,4,1};这样就建立一对一的映射的集合{0―>3,1―>0,2―>2,3―>4,4―>1}。因此,加密0得到密文为3,加密4得到密文为1,反之,解密密文3得到明文0,解密密文1得到明文4。

第二种方法是Cycle-walking方法,该方法也不复杂,可以如下来简单描述:要加密0..N范围内的密文C,选用现有的分组密码E(比如DES、AES),执行:

T=E(C);

while (T>N)

T=E(T)

return T;

Cycle-walking方法虽然具有不确定的性能,对每个明文可能需要6到数百次调用,但是该方法可以将不在域范围内的密文加密到期望的范围内。而且通过研究表明,越是接近对称加密密码的输出,Cycle-Walking算法越能快速找到合适的密文值。

一个Cycle-walking方法的例子如下:设要加密的消息空间M=[0,106],那么N=220,因此选用一个20位的对称密码EK来处理[0,220-1]的元素m。现在要加密的元素m=314159,计算得到c1=EK(314159)=1040401;因为c不在M范围内,所以迭代计算c2=EK(1040401)=1729;因为c2在M范围内,所以密文为1729。

这样,为了加密100位的数值,采用AES-128-ECB算法,迭代加密,直到前28高位都为0,要执行平均大约214次迭代。通常来说,越是接近对称加密密码的输出,Cycle-Walking算法越能快速找到合适的密文值。否则,加密速度将很慢。

第三种方法使用Luby和Rackoff提出的Feistel结构来建立FPE算法,该方法可以加密更广泛领域的数据。而Feistel结构作为分组密码的设计模式,为设计满足FPE算法要求的分组密码提供了可行性。Feistel结构将每个分组分成左右部分,进行一般为16轮的迭代运算,每次迭代完后交换左右位置。可以自己进行设计的有:分组大小、密钥长度、轮次数、子密钥生成、轮函数等。

Feistel结构的基本加解密过程如图1所示:

图1 Feistel结构的加解密过程

第三种方法的大致工作流程如下:首先,构建一个分组大小接近待加密集合大小的Feistel网络,用于加密数据。然后,用Crycle-walking方法确保数据加密到正确的范围内。由于所构建的Feistel密码的分组大小很接近于待加密集合的大小,因此可以使用很少的Crycle来达到目标的范围。

在2008年,美国Voltage公司的公布了FPE的白皮书《Voltage Security WhitePaper Format Preserving Encryption》[4],该白皮书全面分析了FPE的历史及FPE的模型,对于整数域上的信用卡号等提供了实用的FPE解决方案。

三、应用前景

保留格式加密可以在不需要更改数据库或者应用程序的情况下完成对敏感信息的加密,在文献[5]中详细介绍了保留格式加密典型的应用及行业,如下:

(一)增强数据库应用系统的安全性

在数据库(目录服务器)中加密信息一直很困难,因为加密信息就意味着扩充数据并且改变它的格式。而多数大型商用应用系统都是基于数据库的应用系统,诸如金融行业、社保、电子政务、电子商务及网上支付等等,由于数据库中存在大量用户的敏感信息(比如银行卡号、用户名和密码等),这些信息如果被窃取,将对已建设的软件系统造成致命的破坏。

引入FPE算法,无疑将大大加强数据库的安全性,因为FPE算法具有以下优势:(1)不改动现有软件系统的代码。只需要加几行代码,即可完成数据库中关键信息的加解密。(2)不改动现有数据库结构。因为FPE保留数据格式和长度的特点,数据库的字段不需要改变大小和类型即可直接应用该算法。

(二)数据遮蔽

数据遮蔽内嵌丰富的数据修改规则,通过各种复杂算法,可自动批量快速完成对敏感数据的修改,从而保证克隆出来的数据库的数据量完全等同于生产库的数据量,敏感数据又做了伪装,如身份证号,姓名,家庭住址,工资等,看起来是真数据实际上是假数据,从而消除了敏感数据的泄露隐患。

(三)金融行业安全

支付卡行业数据安全标准(Payment Card Industry Data Security Standard,PCI DSS)是一套广为接受的政策和程序,目的是为了优化信用卡,借记卡和现金卡交易的安全,保护持卡人的个人信息,以防被他人利用。支付卡行业数据安全标准于2004年由Visa卡,万事达卡,Discover卡和美国运通4个主要信用卡公司共同创建。

支付卡行业数据安全标准规定和阐述了六大目标,其中之一就是:持卡人信息无论存在哪,都必须受到保护。应确保存放的重要数据,如出生日期和电话号码不被破解。当持卡人的数据通过公共网络进行传送时,这些数据必须经过有效地加密。传统的分组密码将加大改变这些系统的复杂度,代价昂贵,容易出错。而FPE实现简单,避免了从根本上去设计和审查系统。

四、结论

保留格式加密能保证密文的类型和长度与明文相同,将具有广泛的应用前景,能增强数据库应用系统的安全性,在目前敏感信息急需保护的时代,为当前企业的数据保护提供最根本有效的基于密码学的保护方法。

参考文献:

[1]National Bureau of Standards.FIPS PUB 74,Guidelines for implementing and using the NBS data encryption standard,1981

[2]Smith HE,Brightwell M.Using datatype-preserving encryption to enhance data warehouse security.In:Proc.of the 20th National Information Systems Security Conf,1997:141-149

[3]Black J,Rogaway P.Ciphers with arbitrary finite domains.In:Preneel B,ed.Proc.of the Topics in Cryptology―CT-RSA 2002.LNCS 2271,San Jose:Springer-Verlag,2002:114-130

[4]Spies T.Format preserving encryption.Unpublished Voltage White Paper.2008.www.省略/pdf/Voltage-Security-WhitePaper-Format-Preserving-Encryption.pdf

[5]刘哲理,贾春福,李经纬.保留格式加密技术研究[J].软件学报,2012,1:152-170

[作者简介]刘祥礼(1980-),男,2007年12月毕业于吉林大学,硕士,现任中国铁通松原分公司总经理助理。

上一篇:基于工作流的企业办公自动化系统的需求分析 下一篇:基于支持OPC的组态软件INSPEC的企业信息集成构...