在实际应用中,对信用卡号、身份证号等敏感数据进行加密非常必要,然而使用传统分组密码加密通常会使数据长度且类型发生变化,需要修改数据库结构或应用程序来适应这些变化,造成改造成本增高,为了解决这样的困扰,保留格式加密技术应运而生。

一 技术发展情况

保留格式加密 (Format-Preserving Encryption,FPE)是一种特殊的对称密码算法,其特征表现为加密后的密文与明文具有相同的格式,密文与明文处于相同的消息空间。FPE在数据脱敏中有着广泛的应用,并具有其独特的优势。通常的数据脱敏方法对敏感数据脱敏后无法恢复原始数据,而采用基于密码技术的FPE对数据进行脱敏,脱敏后的数据可通过解密恢复原始数据。

FPE是一类能够将某种特定格式的明文加密成具有相同格式的密文的新型加密技术,自20世纪80年代提出以来,已有大约40年的研究历史,目前得到了广泛的关注和研究。对于FPE的研究大体可分为基本算法研究、加密模型研究以及应用场景研究三个阶段。

基本算法研究阶段致力于基本类型数据FPE算法的探索,如Prefix算法、Cycle-walking算法和Generalized-feistel算法,这三个算法不仅在一定程度上解决了整数集上的FPE问题,而且还成为构造FPE模型的基本方法,其中Generalized-feistel被大多数FPE模型采用。

加密模型研究阶段主要在基本构建方法的基础上,试图解决更复杂的FPE问题,提出更高效的FPE模型,如FFSEM、RTE和FFX是三个最具有代表性的FPE模型。FFSEM是基于Feistel网络的适用于整数域上的FPE方案。RtE将明文空间复杂域上的FPE问题转化为建立元素与索引的对应关系以及整数FPE问题。FFX模型通过将固定字符表与基索引表(数字集合)建立双射关系,将字符中的每个字符编码为数字串,对数字串进行Feistel加密运算,从而实现对消息空间上的保留格式加密。

应用场景研究阶段主要是根据具体应用场景的要求和特定数据的格式,来设计特定的FPE算法。FPE最初是为了解决数据库或应用系统中敏感信息加密问题,经过多年的理论与应用研究,FPE的应用场景日益广泛,比如数据遮蔽和多媒体格式兼容加密等场景。

二 产业落地情况

FPE应用主要体现在数据库加密、格式兼容加密等方面,基于FPE的数据库加密,其优势主要体现在:不改动现在数据库结构,不改动或极少改动现在软件系统代码,就可完成数据库中关键信息的加密和解密。FPE在数据库加密的应用已经付诸实践,Voltage公司的安全产品已经使用FPE加密信用卡、社会保险号等敏感数据。在应用研究方面,目前已提出了适用于支付卡行业安全的信用卡号FPE 方案、适用于数据库加密的日期型FPE方法、满足格式兼容要求的PEG2000 加密等实用的解决方案,开拓了FPE在不同领域的应用研究。

在FPE应用研究方面,北京海泰方圆科技股份有限公司自主研发了一种FPE算法以及基于该算法的加密模块和软件,既快速实用又安全可靠。该算法不仅可以保证密文与明文具有相同的数据类型和长度,而且可以使密文保持明文的某些语义特征,例如,可以将一个身份证号或手机号加密为一个看似真实的身份证号或手机号。看一个身份证号码是否真实,通常要看是不是18位数字(末位允许X)、是否符合校验规则。有可能还会看出生日期是否可信、地区码是否有效。所谓看似真实就是密文上能全部符合这些要求。算法设计突破了各敏感数字域单独映射转换的限制,从理论上全面地解决了困扰数据加密行业多年的FPE难题,可应用于数据库安全保护和数据安全治理等方面。

海泰方圆公司给出的一种适用于FPE算法的创新工作模式,即分组密码双扰工作模式,通过给明文组编序号并对序号加密产生不可预测的密钥流,并以密钥流加扰形式作用到输入明文组和输出密文组中,它使得攻击者难以获得和积累明密对,从而防范已知明文攻击。一定程度上弥补了FPE算法实用中因为明文组空间较小可能引发的安全问题。比如,某人为了加密数字数值而设计了一种专门的保留格式算法,可是为了保障效率,安全方面难以令人满意。比如,使用ECB模式且分组长度较小时,难以消除高概率差分路径的存在,当攻击者拥有几百个选择明文情形,有可能可以求出密钥。而使用双扰工作模式,效率会降低一倍,但基于相关分析的安全隐患没有了。一是高概率差分路径没用了。二是明文组与密文组之间的对应关系难以建立,即使攻击者已知全部明文和密文,也不能获得类似ECB模式那样的明密对。

三 发展难点分析

FPE问题的复杂性在于待解决问题消息空间的复杂性,已有的模型为特定领域的FPE问题提供了较好的解决办法。然而,目前的研究工作还存在很多亟待解决的问题,主要包括:

1) 性能问题

解决任意有限域上的FPE问题,存在不确定的性能问题。在保证安全性的基础上,优化Feistel网络,或者采用其他构建方式,设计高效的FPE算法,仍然是未来一个待解决的问题。

其实,性能能否满足需要,主要是方案设计问题。当前一些知名的FPE算法方案,设计水平不高,或者综合性能不尽人意。例如,具有保留格式功能的分组密码FF1和FF3工作模式,早在十年前就开始提议将FF1和FF3模式增加为AES标准工作模式。经过了一些人的积极推动,NIST于2016年开始征求意见,建议将FF1和FF3模式增加为AES的保留格式加密标准,结果,支持的声音总是极其微弱。因未能征得学者们的认可,作者对FF3作了修改,2019年2月NIST重新发布公告,提议将FF1和FF3-1模式推荐为AES的保留格式加密标准,三年多过去了,仍在征求意见中。如果FF1和FF3-1模式设计得好,可能早就成为标准了,这表明模式设计并没有得到学术界普遍认可。

性能优良的保留格式加密方案大量存在,正等待着密码研究人员开发和发现。可能需要更强的需求牵引来催生研究人员的积极性。

2) 完整性认证问题

目前的FPE加密模型都只能完成加密,而不能对消息提供完整性认证功能。消息认证通常需要通过附加认证码或进行签名来实现,这意味着要扩充密文空间,与FPE确保密文和明文在相同的消息空间是一种矛盾,该问题是对FPE的新挑战。

3) FPE解决实际应用存在的关键问题

FPE为保留数据的类型和长度提供了相对完美的解决方案,并具有较高的安全性。然而,每种应用问题都具有特定的格式要求或者某些约束,FPE需要为此量身定制,而且由于加密破坏了明文数值,可能会违背一些应用的约束,从而增加了FPE应用的难度。

四 意见和建议

虽然FPE取得了长足的发展,但是也存在着发展难点。目前FPE没有统一的国家标准,而且缺乏被密码学术界或产业界高度认可的FPE通用算法。建议制定和推广一套方便实用的FPE算法和使用规范。

在课题研究方面,需要国家相关部门积极帮扶和引领,比如以开展保留格式密码算法设计竞赛或开放课题等方式,推动课题快速进展及应用。而且,有必要召开一场由全国的学术界和企业界共同参与的保留格式密码算法研究专题研讨会。

(供稿单位:北京海泰方圆科技股份有限公司)

声明:本文来自CCPA工信商密联盟,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。